2011-01-27 3 views
1

Lazy 자체가 아닌 Lazy 클래스에서 상속받은 클래스를 사용하여 가져올 수 있습니까? 메타 데이터가 포함 된 ExportAttribute의 파생어를 사용하여 내보내고 있습니다.Lazy에서 상속받은 클래스를 사용하여 종속성 가져 오기 <>

[FeatureExport(/* Feature Metadata Parameters */)] 
public class Feature : IFeature 
{ 
    // Feature Properties 
} 

public class FeatureReference : Lazy<IFeature, IFeatureMetadata> 
{ 

} 

public class Consumer 
{ 
    [ImportMany] 
    public IEnumerable<FeatureReference> FeatureReferences { get; set; } 
} 

이것이 가능합니까? 작동할까요? 나는 그것을 직접 시도 할 수는 있지만 실제로 코드를 작성하지는 않았다.

답변

3

아니요, 작동하지 않습니다. 이 작업을 수행하려면 고유 한 프로그래밍 모델 확장 (사용자 정의 파트/카탈로그 또는 가능하면 ReflectionModelServices을 통해)을 구현해야합니다.

MEF는 FeatureReference 개체를 만들어서 설정해야하며 FeatureReference에는 생성자가 상상할 수있는 것으로 간주되므로 이것이 지원되지 않는 이유를 추측 할 수 있습니다.

+0

감사합니다. 이제는 UML 도구 (Modelio)에서 새 이름으로 템플릿 형식을 호출하지 않고 템플릿 형식을 인스턴스화하는 방법 만 알고 있다면 완전히 다른 문제입니다. :) – Jordan

관련 문제