使用Mef构建相互依赖的对象

时间:2013-10-21 15:58:38

标签: c# mef

假设我有一个类Application,它导入一组插件

public class Application : IApplication
{
    [ImportMany]
    private List<IPlugin> Plugins { get; set; }
}

现在我的插件定义如下

    [Export(typeof(IPlugin))]
    public class Plugin : IPlugin
    {
        private IApplication _application;
    }

我想在每个插件中都有一个对加载插件的IApplication的引用。

如何使用Mef实现这一目标?

1 个答案:

答案 0 :(得分:1)

使用Application

装饰[Export(typeof(IApplication))]班级

使用_application

装饰班级Plugin中的成员变量[Import(typeof(IApplication))]