Как я могу добавить и прочитать значение из файла web.config?
Чтение переменной из Web.Config
Ответ 1
Я бы посоветовал вам не изменять web.config, потому что каждый раз при изменении он перезапускает ваше приложение.
Однако вы можете прочитать web.config с помощью System.Configuration.ConfigurationManager.AppSettings
Ответ 2
Учитывая следующий файл 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"];
Ответ 3
Если вам нужны основы, вы можете получить доступ к клавишам через:
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; }
}
}
Ответ 4
Предполагая, что ключ содержится внутри <appSettings>
node:
ConfigurationSettings.AppSettings["theKey"];
Что касается "записи" - просто введите не.
Web.config не предназначен для этого, если вы собираетесь постоянно менять значение, поместите его в статический вспомогательный класс.
Ответ 5
У Райана Фарли есть отличная статья об этом в его блоге, включая все причины, по которым нельзя писать обратно в файлы web.config: Запись в файл конфигурации .NET.NET
Ответ 6
Я являюсь классом SiteConfiguration для вызова всех своих приложений appSetting таким образом. Я разделяю это, если это поможет кому-то.
добавьте следующий код в файл "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");