2011-01-27 65 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