Como posso adicionar e ler o valor do arquivo web.config ?
Como posso adicionar e ler o valor do arquivo web.config ?
Respostas:
Eu sugiro que você não modifique o web.config do seu, porque toda vez que mudar, ele irá reiniciar o seu aplicativo.
No entanto, você pode ler web.config usando System.Configuration.ConfigurationManager.AppSettings
Dado o seguinte web.config:
<appSettings>
<add key="ClientId" value="127605460617602"/>
<add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/>
</appSettings>
Exemplo de uso:
using System.Configuration;
string clientId = ConfigurationManager.AppSettings["ClientId"];
string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];
ToString
explicitamente, como indexadores sobre o AppSettings
valor de retorno do string
próprio tipo
Se você quiser o básico, pode acessar as chaves por meio de:
string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString();
string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();
Para acessar minhas chaves de configuração da web, sempre faço uma classe estática em meu aplicativo. Isso significa que posso acessá-los onde quer que eu precise e não estou usando as strings em todo o meu aplicativo (se ele mudar na configuração da web, eu teria que passar por todas as ocorrências alterando-os). Aqui está um exemplo:
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; }
}
}
Ryan Farley tem uma ótima postagem sobre isso em seu blog, incluindo todos os motivos pelos quais não deve ser redigido nos arquivos web.config: Gravando no arquivo de configuração do seu aplicativo .NET
Eu sou a classe siteConfiguration por chamar todos os meus appSetting dessa maneira. Eu compartilho isso se vai ajudar alguém.
adicione o seguinte código em "web.config"
<configuration>
<configSections>
<!-- some stuff omitted here -->
</configSections>
<appSettings>
<add key="appKeyString" value="abc" />
<add key="appKeyInt" value="123" />
</appSettings>
</configuration>
Agora você pode definir uma classe para obter todos os seus valores appSetting. como isso
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;
}
}
}
}
Agora adicione a referência da classe anterior e para acessar uma chamada de tecla como abaixo
string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");