我有以下使用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
}
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用 - foo领域是null.这是因为MEF看不到它的类型IFoo<String>吗?