2016-09-13 4 views
0

어떤 형태의 사용자 구성 파일을 참조해야하는 명령 줄 응용 프로그램이 있다고 가정 해 봅니다. 또한이 파일에 포함 된 값은 사용자가 수동으로 업데이트해야합니다. 응용 프로그램 내에서 구성 파일을 업데이트 할 방법이 없으며 응용 프로그램은 일단 시작된 모든 입력을 찾지 않습니다. 구성 목록에 구성 목록이 없으면 대신 기본값을 사용해야합니다.C# 응용 프로그램의 사용자 지정 구성

Visual Studio/.NET Framework에서 이러한 설정 (예 : 설정 및 App.config)을 만드는 데 필요한 도구를 제공하지만 올바르게 사용하고 있는지 잘 모르겠습니다. 모든.

설정 파일을 생성하고 몇 가지 기본 설정을 던졌습니다 (예 : SomeBooleanFlag는 기본값이 'False'인 부울입니다). 이 과정은 물론 내 App.config에 반영되었습니다. 그러나 여기에 딜레마가있는 부분이 있습니다. App.config에서 어떻게 읽어야합니까?

class AppSettings 
{ 
    public static bool SomeBooleanFlag 
    { 
     get 
     { 
      try 
      { 
       string rawValue = ConfigurationManager.AppSettings["SomeBooleanFlag"]; 

       bool userSetSomeBooleanFlag; 
       bool userValueParsed = bool.TryParse(rawValue, out userSetSomeBooleanFlag); 

       return (userValueParsed) ? userSetSomeBooleanFlag : Settings.Default.SomeBooleanFlag; 
      } 
      catch 
      {    
       return Settings.Default.SomeBooleanFlag; 
      }     
     } 
    } 
} 

후 나에게 쓰는 기능 제공 :

현재, 난 도망 추상적으로 구성 관리자/설정 물건 클래스를 만든 그러나

if (AppSettings.SomeBooleanFlag) 
{ 
    /* Do Something... */ 
} 

을,이하지 않습니다 위에서 언급 한 문제에 접근하기위한 깨끗한 방법처럼 보입니다. 어떤 도움이라도 대단히 감사하겠습니다!

+0

I을 클래스 대신 일반 도우미 함수를 사용하십시오. 그렇지 않으면 코드가 제게 좋을 것 같습니다. – BradleyDotNET

+0

왜 "문제를 해결할 수있는 깨끗한 방법"이 아닙니까? 그게 뭐가 잘못 됐어? 기본적으로 설정 저장소를 추상화하여 많은 훌륭한 앱 디자이너가하는 일을합니다. 모든 비즈니스 코드는 AppSettings를 호출하여 값을 가져오고 나머지 응용 프로그램에는 영향을 미치지 않고 나중에 레지스트리 또는 데이터베이스와 같은 기본 설정의 원본을 자유롭게 변경할 수 있습니다. 그러나 당신의 * 특정 * 관심사를 모른 채, 나는 당신이 정말로 묻고있는 것을 알 수 없습니다. –

+0

[appSettings 파일 특성] (https://msdn.microsoft.com/en-us/library/system.configuration.appsettingssection.file (v = vs.110) .aspx)을 사용하여 [별도의 구성 파일을 사용하여 기본 설정을 무시하십시오.] (http://stackoverflow.com/questions/27691636/write-appsettings-in-external-file). – Jasen

답변

0

응용 프로그램 설정 래퍼를 코딩하는 대신 Visual Studio에 내장 된 기능을 다시 사용하여이 래퍼를 생성 할 수 있습니다. How to: Add or Remove Application SettingsHow To: Read Settings at Run Time With C#을 참조하십시오. 설정 유형을 지정하는 것 외에도 범위 (사용자 또는 응용 프로그램)를 지정할 수도 있습니다.

상기 기사의 단계에 따라, 그것은 당신의 App.config 파일에 설정을 추가 할 것입니다, 아래의 예는 다음과 같습니다

<configuration> 
... 
    <applicationSettings> 
     <ConsoleApplication1.Properties.Settings> 
      <setting name="TestKey" serializeAs="String"> 
       <value>TestValue</value> 
      </setting> 
     </ConsoleApplication1.Properties.Settings> 
    </applicationSettings> 
... 
</configuration> 

그리고 다음과 같이 이러한 설정에 액세스 할 수 있습니다

string s = Properties.Settings.Default.TestKey; 
관련 문제