2011-10-31 2 views
0

현재 솔루션에는 2 개의 app.config (하나는 공통 설정 용이고 다른 하나는 서비스 설정 용)가있는 3 개의 프로젝트가 있습니다. 현재로서는 정적 클래스를 만들어서 값에 액세스하는 조정자 역할을합니다. 나는 이렇게하므로 도처에 ConfigurationManager.AppSettings["SomeKey"]을 쓸 필요가 없다. 이것은 다른 프로젝트의 app.config 파일에 액세스 할 때까지 제대로 작동합니다.App.config 다중 프로젝트 액세스 전략

여기에 제가 현재하고있는 내용이 있습니다 (간결성을 위해 모든 속성 생략).

public class ServiceConfiguration 
{ 
    public static readonly string SyncEvery = ConfigurationManager.AppSettings["SyncEveryMinutes"]; 
} 

다른 프로젝트에있는 app.config 파일에 어떻게 액세스합니까? 아마 출력 디렉토리에 파일을 복사 VS 설정 내 트릭을 할 것이라고 생각했지만 내 구성 개체는 여전히 null입니다.

+2

ServiceConfiguration.FindKeyValue (key)가 Configurationmanager.AppSettings [key]보다 나은 점을 확인하지 못합니까? 너는 무엇을 얻고 있는가? –

+0

나쁜 예입니다. 실제로 문자열 대신 값을 가져올 수있는'T FindKeyValue (string key)'라는 override를 가지고 있습니다. – gcso

답변

2

처음에는 다른 응용 프로그램의 구성을 읽어야하는 좋은 이유가 있지만 이미 처리 할 가치가없는 웜을 열 수 있습니다.

프로젝트의 구성 값을 속성으로 표시하고 소비 클래스에서 액세스하는 클래스를 표시합니다. 복잡한 구성 요구 사항을 가지고있는 경우에

public class FirstProjectClass 
{ 
    public static int SyncEveryMinutes 
    { 
     get { return (int)ConfigurationManager.AppSetting["SyncEveryMinutes"] }; 
    } 
} 


public class SecondProjectClass 
{ 
    public void ShowConfigedValue() 
    { 
     Console.Writeline("Syncing every {0} minutes", FirstProjectClass.SyncEveryMinutes); 
    } 
} 

당신은 또한 도움이 될 수 있습니다 custom configuration sections