2010-12-08 3 views
2
MEF MEF을 사용하여 플러그인 ( parts 포함 DLLs)을 plugins 폴더에 추가 한 후 DirectoryCatalog에서 새로 고치기를 호출하면 컨테이너를 다시 작성 (재구성이 허용되는 경우)하고 새로운 추가 된 플러그인에 액세스 할 수있게됩니다.

DirectoryCatalog 사용시 동적으로 부품 (DLL) 변경

우리가 DLL (part)을 동적으로 대체해야한다면 어떻게해야할까요?

이 시도했지만로드 된 모든 partsMEF에 의해 잠겨 (쓰기 보호) 및 바꿀 수 없습니다.

답변

3

DLL에 잠금 기능이있는 .NET입니다. AppDomain에서 어셈블리를 언로드 할 수 없으며로드되는 동안 일반적으로 잠금이 있습니다. AppDomain에 대한 섀도 복사를 사용하면 DLL을 삭제할 수 있습니다. 여전히로드되지만 DirectoryCatalog는 Refresh를 호출하고 카탈로그에서 제거했을 때 사라 졌음을 알 수 있습니다.