2011-10-04 6 views
2

I 시작시 컨테이너 작성 후 나중에 Import 속성이있는 객체의 인스턴스를 만듭니다. 이 속성은 사용할 때 Null입니다.작성 후 작성된 개체로 Mef 가져 오기

MEF는 나중에 생성 된 개체를 어떻게 처리합니까? 나는 시작할 때 모든 객체를 인스턴스화해야한다고 믿지 않습니다.

+0

OK 나는 아마도 오해라고 생각 MEF 설정 방법. 카탈로그는 추측 할 수있는 내보내기 만 찾으며 배치를 만들어야합니다. 나는 아래로부터 위로 시스템을 구성하는 방법을 생각해 내는데 어려움을 겪고있다. 좋은 튜토리얼? –

답변

4

컨테이너를 만들 자마자 인스턴스를 만들 필요가 없습니다. 그러면 누구에게나 실질적인 도움이되지 않습니다. 인스턴스를 어떻게 만드십니까? 여기에 예를 들어 클래스 주어진 몇 가지 예입니다 :

[Export] 
public class MyClass 
{ 
    [Import] 
    public MyOtherClass OtherClass { get; set; } 
} 

I 수 :

var myClass = container.GetExportedValue<MyClass>(); // This would automatically compose. 

var myExport = container.GetExport<MyClass>(); 
var myClass = myExport.Value; // This would automatically compose. 

var myClass = new MyClass(); 
container.SatisfyImportsOnce(myClass); // Manually compose your part. 

또는 수동으로 함께 CompositionBatch 사용하여 모든 바람 등

+1

그래서 새로운 가져 오기를 작성해야 할 때 액세스 할 수 있도록 모든 클래스를 통해 컨테이너를 전파합니까? –

관련 문제