簡體   English   中英

MEF通用進口

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

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