2010-01-11 4 views
0

저는 C#에서 1 개의 주요 프로젝트 Kingrey (exe)와 하나의 프로젝트 (DllReporter)와 다른 하나는 ProductReportClasses라는 솔루션을 가지고 있습니다. 모든 dll을 강제로 현재 도메인에 추가하는 방법?

내가 DllReporter 수준에서 내 EXE에있는 모든 어셈블리를 나열하려고 할

:

AppDomain.CurrentDomain.GetAssemblies() 

나는 단지 킹 그레이와 DllReporter 있지만 ProductReportClasses를 얻을. I 디이 킹 그레이의 주요 코드에서 어셈블리를 얻기 전에 때

는하지만 : 나는 3 어셈블리를 얻을 사용 AppDomain.CurrentDomain.GetAssemblies

ProductReportClasses.ClassBasic b = new ProductReportClasses.ClassBasic(); 

및 이상()보다 가정한다.

내 질문은 : 모든 어셈블리를 얻는 방법 또는 모든 어셈블리가 GetAssemblies에 나열되도록하는 방법입니다.

답변

0

간단한 답변 : A)는 응용 프로그램 도메인에로드 한하고자하는 모든 어셈블리를 알고 2) 각 어셈블리에서 유형을 알고 있다면 다음과 같은

Type temp = typeof(ClassInAssemblyA); 
temp = typeof(ClassInAssemblyB); 
temp = typeof(ClassInAssemblyC); 

을 수행하여로드 할 수하도록 강제 할 수 있습니다 애플리케이션 실행의 시작 부분 근처. 이것은 약간 해키처럼 보입니다. 그러나 그것은 작동합니다 (위의 A와 2의 자격을 얻고 A, B 및 C 어셈블리를 참조 할 때).

+0

불행히도 잘 모르겠다 –

+0

그러면 특정 위치의 모든 어셈블리를 반복하여 현재 appdomain에로드해야합니다. http://msdn.microsoft.com/en-us/library/25y1ya39.aspx 그러면 어떤 디렉토리가 검색됩니까? – Will

+0

같은 폴더에있는 다른 프로젝트의 DLL이 더 많기 때문에이 작업을 수행 할 수 없습니다 –

관련 문제