2010-11-22 2 views
16

AggregateCatalog은 무엇입니까? new AggregateCatalog()을 만들면 무엇을 의미합니까? 카탈로그에 어셈블리를 추가 할 때의 의미는 무엇입니까? 예 : catalog.Catalogs.Add(new AssemblyCatalog(someAssembly))? 어셈블리 이외에 카탈로그에 무엇을 추가 할 수 있습니까? 이것에 관련된 일반적인 지식도 도움이 될 것입니다. (전 총 멍청이입니다) MEF의집계 카탈로그 란 무엇입니까?

답변

16

AggregateCatalog은 기본적으로 여러 개의 확장 카탈로그를 수집하도록 허용합니다. new AggregateCatalog()을 호출하면 기본적으로 여러 부분을 포함 할 수있는 여러 개의 ComposablePartCatalog 인스턴스를 포함 할 수있는 새 카탈로그 컬렉션 (반드시 채워지지는 않음)을 인스턴스화합니다.

여러 세트에서 부품을 수집하는 데 도움이되는 클래스라고 생각하십시오.

어셈블리는 부품을 호출 응용 프로그램으로 푸시하는 단지 방법 일뿐입니다. 기존 어셈블리 내부에서 직접 파트를 전달할 수 있습니다.

카탈로그에 대한 자세한 내용은 this을 읽는 것이 좋습니다.

+1

이와 동일한 단일체가 있습니까? – Vaccano

+0

ModuleCatalog와 대조해 보시겠습니까? 그들은 똑같은 일을하는 것처럼 보입니다. –

4

Mef에는 작은 학습 곡선이 있습니다. mef.codeplex.com atleast에서 한 번만 문서를 살펴보십시오. 또는 정말로 시간을 보내고 있다면 스크린 캐스트를 시도해보십시오.

카탈로그는 수출 된 부품 (주입 할 객체) 또는 가져 오기가 필요한 부품 (주입 된 객체가 필요함)의 사전입니다. 카탈로그는 여러 가지 방법 (따라서 the diff Catalog derivations)으로 채울 수 있습니다. 디렉토리 (dir의 모든 asm) 또는 특정 어셈블리.

다음으로 종합 카탈로그를 만들 수 있습니다. 예 : DirA에서 내 보낸 모든 개체와 DirB에있는이 특정 어셈블리를 포함하는 단일 사전을 만들려고합니다. 이 경우 개별 카탈로그를 만든 다음 두 카탈로그를 병합하는 합성 카탈로그를 만들 수 있습니다. 이제 코드에서이 병합 된 사전을 사용하여 가져 오기/내보내기를 요청합니다.