모두차단
같은 수출 서명이 오직 하나 (이 가능 가져와야이 개 수출 구성 요소가 존재하는 경우 문제는 실제적인 예를 대체 할 새로운 플러그인을 설치입니다 이전 버전을 제거하지 않고 이전 버전을 제거하십시오.). 어떤 구성 요소를 가져와야하는지 알려주는 구성 파일을 제공 할 수 있지만 MEF에게 올바른 선택을하는 방법은 무엇입니까?
은 사용자 정의 카탈로그를 사용 가능한 플러그인을 필터링 :
나는 세 가지 방법이있다. 그러나 A가 B와 A를 수입 할 때 A와 B가 동일한 수출 서명을 가지는 반면 A가 B와 B를 수입한다고 가정하십시오. 사용자 지정 카탈로그는 각 구성 요소에 대한 새 사용자 지정 카탈로그를 만드는 것을 제외하고는이를 처리 할 수 없습니다.
MEF 조성물에서 차단. 나는 그것이 가능하고 어떻게 해야할지 모르겠다. 그러나 우리가 구성 과정에서 가로 채게하는 방법이 있다면, 이것이 최고의 것이 될 수 있습니다.
실제 인터페이스 대신 가져 오기 래퍼를 사용하십시오. 구성 요소가 구성되면 래퍼를 초기화하고 래퍼가 선택 로직을 처리 할 수 있습니다 (예 : 프롬프트 창으로 사용자가 구성을 하나를 선택하거나 읽을 수 있습니다)
예, [ImportMany]는 해결할 수 있지만 모든 컴포지션 구성 요소가 플러그인 선택 로직 자체를 처리해야합니다. 나는 이것을 피하려고 노력하고있다. –
참조 http://stackoverflow.com/questions/7750640/intercepting-dependencies-in-mef, ExportProvider가 방법 2 –
thx를 충족 할 수 있도록 구현하는 데 도움이 될 수 있습니다. 만약 당신이 물건을 작동 시키면 여기에 답변으로 게시 해주십시오. – blindmeis