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

本文关键字:依赖 对象 Mef 构建 使用 | 更新日期: 2023-09-27 18:36:20

假设我有一个导入插件集合的类应用程序

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

现在我的插件是这样定义的

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

我希望在每个插件中都引用加载插件的 IApplication。

如何使用Mef实现这一点?

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

[Export(typeof(IApplication))]装饰Application

[Import(typeof(IApplication))]修饰类Plugin中的成员变量_application