Как я могу добавить и прочитать значение из файла web.config ?
c#
.net
asp.net
web-config
Амира Эльсайед Исмаил
источник
источник
Ответы:
Я бы посоветовал вам не изменять web.config из вашего, потому что каждый раз при изменении он перезапускает ваше приложение.
Однако вы можете прочитать web.config, используя
System.Configuration.ConfigurationManager.AppSettings
источник
Учитывая следующий файл web.config:
<appSettings> <add key="ClientId" value="127605460617602"/> <add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/> </appSettings>
Пример использования:
using System.Configuration; string clientId = ConfigurationManager.AppSettings["ClientId"]; string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];
источник
ToString
явно, поскольку индексаторы дляAppSettings
возвращаемого значения типаstring
сами по себеЕсли вам нужны основы, вы можете получить доступ к ключам через:
string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString(); string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();
Чтобы получить доступ к моим ключам веб-конфигурации, я всегда создаю статический класс в своем приложении. Это означает, что я могу получить к ним доступ везде, где мне нужно, и я не использую строки во всем своем приложении (если они изменяются в веб-конфигурации, мне придется пройти через все вхождения, изменив их). Вот образец:
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; } } }
источник
Предполагая, что ключ содержится внутри
<appSettings>
узла:ConfigurationSettings.AppSettings["theKey"];
Что касается «письма» - проще говоря, не надо.
Web.config не предназначен для этого, если вы собираетесь постоянно изменять значение, поместите его в статический вспомогательный класс.
источник
У Райана Фарли есть отличный пост об этом в своем блоге, включая все причины, по которым не следует записывать обратно в файлы web.config: Запись в файл конфигурации вашего .NET-приложения
источник
Я класс siteConfiguration для вызова всех моих приложений таким образом. Поделюсь, если это кому-нибудь поможет.
добавьте следующий код в "web.config"
<configuration> <configSections> <!-- some stuff omitted here --> </configSections> <appSettings> <add key="appKeyString" value="abc" /> <add key="appKeyInt" value="123" /> </appSettings> </configuration>
Теперь вы можете определить класс для получения всего вашего значения appSetting. как это
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; } } } }
Теперь добавьте ссылку на предыдущий класс и получите доступ к ключевому вызову, как показано ниже
string appKeyStringVal= SiteConfigurationReader.appKeyString; int appKeyIntVal= SiteConfigurationReader.appKeyInt; int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");
источник