¿Cómo puedo agregar y leer el valor del archivo web.config ?
¿Cómo puedo agregar y leer el valor del archivo web.config ?
Respuestas:
Le sugiero que no modifique web.config de su, porque cada vez que cambie, reiniciará su aplicación.
Sin embargo, puede leer web.config usando System.Configuration.ConfigurationManager.AppSettings
Dado el siguiente web.config:
<appSettings>
<add key="ClientId" value="127605460617602"/>
<add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/>
</appSettings>
Uso de ejemplo:
using System.Configuration;
string clientId = ConfigurationManager.AppSettings["ClientId"];
string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];
ToString
explícitamente, ya que los indexadores en el AppSettings
valor de retorno del tipo string
ellos mismos
Si desea lo básico, 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 lo necesite y no estoy usando las cadenas en toda mi aplicación (si cambia en la configuración web, tendría que revisar todas las ocurrencias cambiándolas). He aquí 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; }
}
}
Suponiendo que la clave está contenida dentro del <appSettings>
nodo:
ConfigurationSettings.AppSettings["theKey"];
En cuanto a "escribir", en pocas palabras, no lo hagas.
El web.config no está diseñado para eso, si va a cambiar un valor constantemente, colóquelo en una clase auxiliar estática.
Ryan Farley tiene una excelente publicación sobre esto en su blog, que incluye todas las razones por las que no debe volver a escribir en los archivos web.config: Cómo escribir en el archivo de configuración de su aplicación .NET
Soy la clase siteConfiguration para llamar a todo mi appSetting de esta manera. Lo comparto si ayuda a alguien.
agregue el siguiente código en el "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 appSetting. 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 acceda a una llamada clave como abajo
string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");