2011-03-23 3 views
3

MEF에서 조건부 가져 오기를 정의하는 데 확장 후크를 사용해야하거나 가능해야합니까?MEF 조건부 가져 오기

선택적 가져 오기 정렬 반전 (AllowDefault=true). 내가 가지고있는 것은 속성 가져 오기이며 이미 설정된 경우 현재 가치를 날려 버리는 것을 원하지 않습니다.

건배

답변

1

MEF에는 이와 같은 기능이 없습니다. 첫 번째 null이 아닌 한 후 모든 설정을 무시 속성 작성할 수

private IContract _import; 
[Import] 
public IContract Import 
{ 
    get { return _import; } 
    set 
    { 
     if (_import == null) 
     { 
      _import = value; 
     } 
    } 
} 

나는이에 대한 사용 사례가 무엇인지 확실하지 않다가, 그래서 이것은 당신을 도울 것입니다 있는지 확실하지 않습니다. MEF는 재구성하는 동안 재 조립 가능한 수입품을 제외하고 수입품을 두 번 이상 설정하지 않습니다.

+0

귀하의 상태는 올바르지 않습니다. :) 감사합니다. –

+0

@ 사이먼. 죄송합니다. 지금 수정했습니다. –

4

집합 전용 속성에서 가져 오기를 설정하면 원하는대로 설정할 수 있습니다.

public class Foo 
{ 
    [Import] 
    private object ImportData { set { if(this.Data == null) this.Data = value } } 

    public object Data { get; set; } 
}