使用Constructor参数创建MEF部件

时间:2017-03-30 17:30:47

标签: c# mef

我有一个导出的课程

[Export(typeof(IService))]

这个类有一个接受

的构造函数
Dictionary<string, object>
public MyService(Dictionary<string, object> model){}

这是我创建零件的方式

var catalog = new AggregateCatalog();
catalog.Catalogs.Add("c:\\[SomePath]"));   
Container = new CompositionContainer(catalog);   
Container.ComposeParts(this);
return Container.GetExportedValue<IService>();

如何在导出零件时将我的参数注入构造函数中?

1 个答案:

答案 0 :(得分:1)

Container.ComposeExportedValue(model);

假设model是您要注入的Dictionary<string, object>

然后你需要使用:

来装饰MyService的构造函数
[ImportingConstructor]
public MyService(Dictionary<string, object> model){}