[英]MEF Generic Imports
我有以下使用MEF的示例代碼:
public interface IFoo<T>
{}
public class Foo<T> : IFoo<T>
{}
[Export(typeof(IFoo<String>))]
public class Foo : Foo<String>
{}
public class Bar<T>
{
[Import]
private readonly IFoo<T> foo;
}
static void Main()
{
var catalog = new AggregateCatalog();
catalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly()));
var container = new CompositionContainer(catalog);
container.ComposeParts();
var bar = new Bar<String>();
//bar.foo would be null
}
這似乎不起作用 - foo
字段為null
。 這是因為它的類型不被MEF看作IFoo<String>
嗎?
foo為null,因為您自己正在創建實例。 您需要讓容器創建實例。
此外,如果您計划使用導入/導出泛型,則需要查看GenericCatalog 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.