Comment puis-je ajouter et lire la valeur de web.config file?
Je vous suggère de ne pas modifier web.config depuis votre, car à chaque changement, il redémarrera votre application.
Cependant, vous pouvez lire web.config en utilisant System.Configuration.ConfigurationManager.AppSettings
Étant donné le web.config suivant:
<appSettings>
<add key="ClientId" value="127605460617602"/>
<add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/>
</appSettings>
Exemple d'utilisation:
using System.Configuration;
string clientId = ConfigurationManager.AppSettings["ClientId"];
string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];
Si vous voulez les bases, vous pouvez accéder aux clés via:
string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString();
string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();
Pour accéder à mes clés de configuration Web, je crée toujours une classe statique dans mon application. Cela signifie que je peux y accéder à tout moment et que je n'utilise pas les chaînes dans toute ma candidature (si la configuration Web change, il faudrait que toutes les occurrences soient modifiées). Voici un exemple:
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; }
}
}
En supposant que la clé soit contenue dans le noeud <appSettings>
:
ConfigurationSettings.AppSettings["theKey"];
Quant à "écrire" - simplement, ne le faites pas.
Le fichier web.config n'est pas conçu pour cela. Si vous modifiez constamment une valeur, placez-la dans une classe d'assistance statique.
Ryan Farley a publié un article sur ce sujet dans son blog, avec toutes les raisons pour lesquelles il ne faut pas écrire dans les fichiers web.config: Écriture dans le fichier de configuration de votre application .NET
Je suis la classe siteConfiguration pour appeler tous mes appSetting comme ceci. Je le partage si cela peut aider quelqu'un.
ajoutez le code suivant à "web.config"
<configuration>
<configSections>
<!-- some stuff omitted here -->
</configSections>
<appSettings>
<add key="appKeyString" value="abc" />
<add key="appKeyInt" value="123" />
</appSettings>
</configuration>
Vous pouvez maintenant définir une classe pour obtenir toute votre valeur appSetting. comme ça
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;
}
}
}
}
Ajoutez maintenant la référence de la classe précédente et accédez à un appel de clé comme ci-dessous
string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");