Як я можу додати та прочитати значення з файлу web.config ?
Як я можу додати та прочитати значення з файлу 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; }
}
}
Райан Фарлі має чудовий допис про це у своєму щоденнику, включаючи всі причини, чому не писати назад у файли web.config: Запис у файл конфігурації програми .NET
Я клас 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");