簡體   English   中英

MEF-導出和導入通用類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM