2014-04-18 4 views
0

app.config의 섹션 섹션 및 섹션을 만드는 방법을 살펴 보았습니다. http://msdn.microsoft.com/en-us/library/aa309408%28v=vs.71%29.aspxapp.config의 섹션 유형

그러나 : 그래서, 그래서 지금 나는 모든 사람들이 그래서 절 에 대한 다른 유형을 사용하는 것을 발견 다양한 기사를 통과하는 동안 샘플

<configSections> 
    <sectionGroup name="trackGroup"> 
    <section name="trackInfo" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </configSections> 
    <trackGroup> 
    <trackInfo> 
    <add key = "ASHUM" value="ASH-UM"/> 
    </trackInfo> 
</trackGroup> 

을 할 수 있습니다, 나는 여기에 다른 종류의 발견 내가 사용하는 유형은 여기에 언급되지 않았습니다. 난이 유형을 임의의 예제에서 얻었고 실제로는 섹션을 appsetting하기위한 설정을 정의하고 있습니다. 누군가가 내 표본에서 유형이 의미하는 바를 도울 수 있습니까? 버전, 공개 토큰, 문화가 무엇인지 어떻게 정의할까요? 또한 어떤 유형을 사용하는 것이 더 나은지 알고 싶습니까? 마찬가지로 런타임 중에 이러한 설정에 액세스하고 런타임 중에 일부 설정을 수정해야합니다.

또 다른 유형으로 우리가 액세스 할 수있는 다른 방법이 있다고 생각합니까? 처럼 내 샘플에서 나는 같은 키와 값에 접근하고 위의 경우 :

static void getFull(string sectionName) 
     { 
      System.Collections.Specialized.NameValueCollection section = (System.Collections.Specialized.NameValueCollection)System.Configuration.ConfigurationManager.GetSection(sectionName); 
      if (section != null) 
      { 
       foreach (string key in section.AllKeys) 
       { 
        Console.WriteLine(key + ": " + section[key]); 
       } 
      } 
     } 

을하지만 우리는 내가 키와 값에 액세스하기 위하여려고하는 방법을 제공하는 MSDN 링크에서와 같은 형식을 사용하는 경우?

답변

1

이것은 설정 섹션을 만드는 작업입니다. 또한 외부화 섹션을 허용합니다.

의 App.config

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
     <section name="TrackInfo" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
    </configSections> 

    <TrackInfo configSource="TrackInfo.config"/> 
</configuration> 

TrackInfo.config

<?xml version="1.0" encoding="utf-8" ?> 
<TrackInfo> 
    <add key="SOME_KEY" value="SOME_VALUE" /> 
</TrackInfo> 

C#

NameValueCollection section = (NameValueCollection)ConfigurationManager.GetSection("TrackInfo"); 
if(null == section) throw new Exception("Missing TrackInfo.config"); 

string val = section["SOME_KEY"]; 
+0

버전 4.0.0.0 = 문화 = 중립 PublicKeyToken = b03f5f7f11d50a3a "/> 어떻게 결정됩니까? 모든 버전에 토큰을 줄 수 있습니까? – Silver

+0

100 % 확신 할 수는 없지만 .net 프레임 워크와 일치해야한다고 생각합니다. 나는 3.5.0.0 및 4.0.0.0을 사용했습니다 – texel

+0

그래, 그래도 그렇게 생각했는데 3.5 버전의 프레임 워크에서 프로젝트를 위해 버전 = 3.5.0.0을 사용했을 때 오류가 발생했습니다. 버전 = 2.0.0.0까지는 저를 위해 모두 잘 작동합니다. 지금 – Silver