Comment puis-je ajouter et lire la valeur du fichier web.config ?
Comment puis-je ajouter et lire la valeur du fichier web.config ?
Réponses:
Je vous suggère de ne pas modifier web.config à partir de 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"];
ToString
explicitement, en tant qu'indexeurs sur la AppSettings
valeur de retour du type string
eux
Si vous voulez les bases, vous pouvez accéder aux touches 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 partout où je le souhaite et que je n'utilise pas les chaînes partout dans mon application (si cela change dans la configuration Web, je devrais passer par toutes les occurrences en les modifiant). 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é est contenue à l'intérieur du <appSettings>
nœud:
ConfigurationSettings.AppSettings["theKey"];
Quant à «l'écriture» - en termes simples, non.
Le web.config n'est pas conçu pour cela, si vous allez constamment changer une valeur, mettez-la dans une classe d'assistance statique.
Ryan Farley a un excellent article à ce sujet dans son blog, y compris toutes les raisons pour lesquelles ne pas réécrire dans les fichiers web.config: Ecrire dans le fichier de configuration de votre application .NET
Je suis la classe siteConfiguration pour appeler tous mes appSetting de cette façon. Je le partage si cela peut aider quelqu'un.
ajoutez le code suivant dans le "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 la 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;
}
}
}
}
Maintenant, ajoutez la référence de la classe précédente et pour accéder à un appel clé comme ci-dessous
string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");