2010-03-12 6 views
0

웹 사이트가 있고 웹 사이트 관리가 포함 된 응용 프로그램입니다.상위 응용 프로그램의 ASP.NET로드 어셈블리

관리 응용 프로그램에서 웹 사이트에서 어셈블리를로드 할 수 있습니까?

예컨대 :

alt text

으로 WebAdmin 프로젝트 (웹 응용 프로그램) : 내가 조립 한 ClassLibrary1.dll을로드 형 ImportProvider의 인스턴스를 만들려면 default.aspx에에. WebAdmin에는 ClassLibrary1에 대한 참조가 없습니다. IIS에서

구성 :

alt text

응용 프로그램 디렉토리 "관리자"(으로 WebAdmin 프로젝트) 나는 정확히 같은 상황이 WEBSITE1에

덕분에 많은

+0

참조를 추가 할 수없는 이유가 있습니까? – peppy

+0

많은 웹 사이트에 대해 하나의 관리 프로젝트가 있으며 각 웹 사이트마다 고유 한 공급자가 있습니다. –

+0

거기에 프로젝트에 대한 참조가 있어야합니다. 내가하고 싶은 일을 잘 이해하면 ("잘 모르겠다"), "특정 버전"을 요구하지 않도록 참조를 설정 한 다음 나중에 다른 버전의 DLL을 삭제할 수 있습니다. WebAdmin 프로젝트를 호출하는 솔루션이 여러 개있는 경우이 방법도 적합해야합니다 (참조는 로컬 ClassLibrary1 프로젝트로 업데이트됩니다). 즉, 프로젝트를 구성하는 이상한 방법 인 것 같습니다. – peppy

답변

1

입니다.

IImportProvider 인터페이스를 만듭니다. 귀하의 웹 사이트는 해당 인터페이스를 구현하는 자체 클래스 라이브러리를 생성해야합니다 (각 웹 사이트마다 다른 제공자가 있음). 이제 IImportProvider를 구현하는 각 웹 사이트에 대해 특정 classLibrary.dll이있는 \ website \ bin \ 디렉토리가 있습니다.

이제 관리에서 MEF을 사용하여 classLibrary.dll 어셈블리를로드 할 수 있습니다. 이것은 나를 위해 작동합니다.

+0

감사합니다. MEF는 훌륭합니다. –