off net habilitar funciona errors errores debug customerrors custom asp c# .net asp.net web-config

c# - net - Leer variable desde Web.Config



habilitar errores web config (6)

¿Cómo puedo agregar y leer el valor del archivo web.config ?


Dado el siguiente web.config:

<appSettings> <add key="ClientId" value="127605460617602"/> <add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/> </appSettings>

Ejemplo de uso:

using System.Configuration; string clientId = ConfigurationManager.AppSettings["ClientId"]; string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];


Le sugiero que no modifique web.config, ya que cada vez que cambie, reiniciará su aplicación.

Sin embargo, puede leer web.config usando System.Configuration.ConfigurationManager.AppSettings



Si desea los conceptos básicos, puede acceder a las claves a través de:

string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString(); string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();

Para acceder a mis claves de configuración web siempre hago una clase estática en mi aplicación. Significa que puedo acceder a ellos donde sea que lo requiera y no estoy usando las cadenas en toda mi aplicación (si cambia en la configuración web, tendría que pasar por todas las instancias para cambiarlas). Aquí hay una muestra:

using System.Configuration; public static class AppSettingsGet { public static string myKey { get { return ConfigurationManager.AppSettings["myKey"].ToString(); } } public static string imageFolder { get { return ConfigurationManager.AppSettings["imageFolder"].ToString(); } } // I also get my connection string from here public static string ConnectionString { get { return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; } } }


Soy clase de configuración de sitio para llamar a todas mis aplicaciones de esta manera. Lo comparto si ayuda a alguien.

agregue el siguiente código en "web.config"

<configuration> <configSections> <!-- some stuff omitted here --> </configSections> <appSettings> <add key="appKeyString" value="abc" /> <add key="appKeyInt" value="123" /> </appSettings> </configuration>

Ahora puede definir una clase para obtener todo el valor de su aplicación. Me gusta esto

using System; using System.Configuration; namespace Configuration { public static class SiteConfigurationReader { public static String appKeyString //for string type value { get { return ConfigurationManager.AppSettings.Get("appKeyString"); } } public static Int32 appKeyInt //to get integer value { get { return ConfigurationManager.AppSettings.Get("appKeyInt").ToInteger(true); } } // you can also get the app setting by passing the key public static Int32 GetAppSettingsInteger(string keyName) { try { return Convert.ToInt32(ConfigurationManager.AppSettings.Get(keyName)); } catch { return 0; } } } }

Ahora agregue la referencia de la clase anterior y para acceder a una llamada de tecla como abajo

string appKeyStringVal= SiteConfigurationReader.appKeyString; int appKeyIntVal= SiteConfigurationReader.appKeyInt; int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");


Suponiendo que la clave está contenida dentro del nodo <appSettings> :

ConfigurationSettings.AppSettings["theKey"];

En cuanto a "escribir", simplemente, no.

El web.config no está diseñado para eso, si va a cambiar constantemente un valor, póngalo en una clase auxiliar estática.