Web.Config에서 변수 읽기


답변:


71

변경할 때마다 응용 프로그램을 다시 시작하기 때문에 web.config를 수정하지 않는 것이 좋습니다.

그러나 다음을 사용하여 web.config를 읽을 수 있습니다. System.Configuration.ConfigurationManager.AppSettings


감사합니다 Mr.Muhammed, 웹 응용 프로그램을 다시 변경하지 않고 변경할 수있는 공공 장소에 변수를 저장하려면 어떻게해야합니까? 미리 감사드립니다
Amira Elsayed Ismail

1
이러한 변수를 암호화 된 XML 파일에 저장할 수 있습니다.
vamyip 2010 년

1
예, XML 파일이 더 나은 아이디어입니다. 또는 DB에 저장하고 application_start (Global.asax)에 추가하고 애플리케이션 변수에 넣고이를 애플리케이션에서 사용할 수 있습니다. 이 변수는 응용 프로그램에서 한 번만 할당되며 응용 프로그램이 다시 시작되면 다시 할당됩니다.
Muhammad Akhtar

도움을 주신 Mr.Vamyip과 Mr.Muhammed에 감사드립니다
Amira Elsayed Ismail

145

다음 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"];

17
+1 좋은 답변. 그러나 한 가지 참고 사항- 유형 자체 의 반환 값에 ToString대한 인덱서로서 명시 적 으로 호출 할 필요가 없습니다AppSettingsstring
horgh

16

기본 사항을 원하면 다음을 통해 키에 액세스 할 수 있습니다.

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; }
    }
}

7

키가 <appSettings>노드 내부에 포함되어 있다고 가정합니다 .

ConfigurationSettings.AppSettings["theKey"];

"쓰기"에 관해서는 간단하게 말하면 안됩니다.

web.config는이를 위해 설계되지 않았으므로 값을 지속적으로 변경하려는 경우 정적 도우미 클래스에 넣으십시오.



0

나는 이런 식으로 모든 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");
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.