2012-10-08 2 views
2

리플렉션을 통해 다른 라이브러리의 메서드를 호출하는 서비스가 있습니다. 그러나 이러한 라이브러리 중 일부는 app.config 파일과 같은 외부 종속성을 가지고있어 때때로 작업을 수행하는 데 사용됩니다.리플렉션 및 구성 종속성을 사용하여 DLL 호출

이 작업을 수행하는 방법이나 이러한 상황을 해결하는 데 도움이되는 라이브러리에 관한 모범 사례가 있습니까?

예 : 내 서비스가 foo() 메서드에서 외부 DLL을 호출해야하는 경우 foo()는 app.config를 사용하여 문자열 목록을 가져 오지만 리플렉션에 직접 사용될 때 충돌합니다.

+0

가능한 경우 [런타임에 기본 app.config 변경] (0120-555-505) – yms

+0

@yms : 서비스 이후로는 매우 유사합니다. 또한 자체 구성 파일을 갖지만 여러 개의 "configuration-container"로 읽을 필요가 있습니다. –

+1

별도의 Appdomain에 dll을로드하고 http://msdn.microsoft.com/en-us/를 사용할 수 있습니다. library/system.appdomainsetup.configurationfile.aspx –

답변

0

외부 응용 프로그램을 호출하려면 새 AppDomain을 만들어야합니다.

외부 애플리케이션 사용을 구체화 할 인터페이스를 정의하십시오.

MarshallByRefObject에서 파생 된 클래스를 만들고 serializable로 표시하고 외부 응용 프로그램에 대한 호출을 구현합니다. 당신은 인터페이스 및 호출로

는 adequat 설정없이 응용 프로그램 도메인 (구성 파일 등)

CreateInstanceAndUnwrap 구현을 정의합니다.