[英]MEF - Exporting and Importing Generic types
由於對插件使用MEF,因此我正在從結構IOC轉移到僅使用MEF。 除了這種情況,一切都進行得很好..
假設我有這堂課
[Export(typeof(IRepository<>))]
public class ConcreteRepository<T> : IRepository<T> {
}
使用結構,我有一種傳遞類型的方式,因此我可以通過查找IRepository<T>
來獲得ConcreteRepository<T>
IRepository<T>
我如何使用Composition容器實現此目的,盡管我打算構造一個通用方法以使用IRepository進行調用,但MEF是否會解析具有特定類型的導出?
謝謝
您不能對導出屬性使用“通用類型定義”,它必須是特定類型(可以具有類型屬性,但是必須定義)。
您是否僅定義了一個接口IRepositoryBase,該接口封裝了獨立於所使用的類型參數(如果存在)的方法?
interface IRepository<T> : IRepositoryBase
然后可以在export屬性中使用它,甚至用於派生類型:
[Import(typeof(IRepBase))]
private IRepository<string> TestRep;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.