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; }
}
}
Ryan Farley는 자신의 블로그에 web.config 파일에 다시 쓰지 않는 모든 이유를 포함하여 이에 대한 훌륭한 게시물을 올렸습니다. .NET 애플리케이션의 구성 파일에 쓰기
나는 이런 식으로 모든 appSetting을 호출하는 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");