【发布时间】:2010-12-27 17:57:26
【问题描述】:
我正在使用 .NET 4.0 beta 2 中的新 System.ComponentModel.Composition 命名空间,也称为 Managed Extensibility Framework。
我使用以下 C# 示例,其中 Monkey 导入 Banana:
public interface IBanana
{
}
[Export(typeof(IBanana))]
public class Banana : IBanana
{
}
public class Monkey
{
[Import(typeof(IBanana))]
public IBanana Banana { get; set; }
}
但是,当我尝试按如下方式编写猴子时,我会收到一个 InvalidOperationException 消息“此对象尚未初始化 - 必须设置属性 'SourceProvider'。”:
var exportProvider = new CatalogExportProvider(new TypeCatalog(typeof(Banana)));
var container = new CompositionContainer(exportProvider);
var monkey = new Monkey();
container.ComposeParts(monkey);
我在这里缺少什么?我知道我可以直接传递目录而不将其包装在 CatelogExportProvider 中,但上述方法不应该也可以吗?
【问题讨论】:
标签: .net mef .net-4.0-beta-2