2008-11-15 2 views
5

다른 어셈블리에 플러그인 시스템을 포함하는 응용 프로그램을 작성하고 있습니다.어셈블리에서 응용 프로그램 설정 사용

문제는 플러그인 시스템이 주 앱 (플러그인을 찾을 디렉토리와 같은)에서 애플리케이션 설정을 가져와야한다는 것입니다.

어떻게 처리할까요? 아니면 제가 잘못 생각하고 있습니까?

편집 : 플러그인 시스템 작동 방식에 대한 세부 정보를 추가하는 것이 좋습니다. 나는 그것을 완전하게 해결하지 못했고 단지 구현하기 시작했지만, 기본적으로 this article으로갔습니다.

+0

플러그인 시스템 작동 방식에 대한 세부 정보를 추가 할 수 있습니다. 주 앱과 플러그인간에 양방향으로 의사 소통을 처리하는 방법에는 여러 가지가 있습니다. – MusiGenesis

답변

3

메인 애플리케이션이 애플리케이션 설정에서 플러그인 디렉토리를 가져 와서 플러그인 시스템에 푸시하도록합니다.

2

아마도 플러그인을 만들 때 구성을 인수로 삽입 할 수 있습니까?

//Get the configuration for the current appDomain 
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

//Create the plugin, and pass in the configuration 
IPlugin myPlugin = new AlfaPlugin(config); 

아마도 System.Configuration 어셈블리에 대한 참조가 필요할 것입니다.

+0

그건 내가 말한 바로는 ... – EricSchaefer

1

사용자 정의 구성 섹션을 작성하여 XML 스키마를 나타내는 객체를 작성할 수 있습니다. 일단 확립되면, 해당 섹션의 현재 인스턴스를 요청할 수 있습니다.

System.Configuration.ConfigurationSection에서 파생하고 속성 및 하위 요소를 나타내는 속성을 작성하여이 작업을 수행 할 수 있습니다. 자세한 내용은 How to: Create Custom Configuration Sections Using ConfigurationSection을 참조하십시오.

라이브러리가 실행중인 AppDomain이 현재 구성 범위입니다. System.Configuration 네임 스페이스는 모든 구성 파일을 상호 연관시키고 통합 된보기를 제공합니다.

섹션의 현재 인스턴스를 검색하려면 ConfigurationManager.GetSection(...)을 사용할 수 있습니다.

귀하의 플러그인은 일반 Configuration 개체 대신이 섹션의 인스턴스를 받아 들여야합니다.

관련 문제