2009-06-29 8 views
4

부모 (실행) 어셈블리에서 참조하는 DLL이 있습니다. 부모 어셈블리에 대한 app.config의 ApplicationSettings 섹션에는 일반적인 인텔리 센스 방식 (예 : Properties.Settings.Default.SMTPServer)으로 액세스 할 수있는 몇 가지 설정이 있습니다.다른 어셈블리에서 ApplicationSettings 섹션에 어떻게 액세스합니까?

참조 된 DLL에서 어떻게 이러한 설정에 액세스합니까? 그들은 분명히 인텔리 센스를 사용할 수 없습니다. 그들은 같은 어셈블리에 있지 않습니다!

+0

ConfigurationManager.AppSettings를 통해 ".Net 1.0 스타일"AppSettings 섹션에 액세스 할 수 있다는 것이 이상하지만 ... 다른 어셈블리에서 설정을 가져 오는 .Net 2.0 방법에는 액세스 할 수 없습니다. – Calanus

답변

0

두 어셈블리 모두에서이 값에 액세스하고 있습니까?

dll에는 자체 구성 파일 및 응용 프로그램 설정이 있습니다. 이것은 이름을 지정한 config 파일로 dll로 시작하지만 설정은 주 응용 프로그램으로 이동할 수도 있습니다.

내가 사용한 또 다른 접근법은 값을 IoC에 할당 한 다음 Ioc (IOC == Inversion of Control 라이브러리) 값을 읽는 것입니다. 싱글 톤 클래스에 값을 할당하여 동일한 작업을 수행 할 수 있습니다.

+0

두 어셈블리에서 값에 액세스하지 않습니다. 실행중인 어셈블리가 설정을 유지하기를 원하는 이유는 참조 된 dll이 여러 응용 프로그램에 의해 사용/컴파일되었지만 설정이 각 응용 프로그램마다 다르기 때 문에 참조 된 dll에서 설정을 정의 할 수 없기 때문입니다. – Calanus

0

DLL 프로젝트에서 .settings 파일을 저장 한 다음 [] 연산자를 사용하여 이름으로 속성에 액세스 해 보았습니까? 예를 들어

,의 당신의 DLL이 특히 아무것도가없는 MySettings.settings 파일이 있다고 가정 해 봅시다 :

MySettings.Default [ "SomeSetting을"];

(실제로이 시도하지 않은, 참고,하지만 빠른 이후 보인다 생각처럼 작동한다고)

내가 더 나은 솔루션 크리스 '조언을하고 싱글 또는 IOC를 사용하는 것입니다 생각 메커니즘을 사용하면 유형 안전을 희생하지 않아도됩니다.

관련 문제