Tag: extensibility

将MEF与C#一起使用,如何从插件中调用主机上的方法?

我正在尝试使用Managed Extensibility Framework(MEF)框架向我的C#应用​​程序添加插件可扩展性,到目前为止它还可以; 我有我的主/主机应用程序从定义的文件夹加载插件,并可以从主应用程序调用他们的方法等。 宿主应用程序和插件都引用了一个单独的dll程序集,其中包含所有项目通用的接口。 这工作正常,我可以调用/与主应用程序的插件交互。 但是,我也希望能够从插件中与宿主应用程序进行交互,但似乎无法了解这是如何完成的。 我希望能够从我的插件中获取/设置/执行主应用程序中的导出属性和方法。 目前我只能从主应用程序“发言”到插件,而不是相反。 我的代码到目前为止: 接口DLL namespace MefContracts { [InheritedExport] public interface IPlugin { String DoWork(); } public class Class1 { public IPlugin plugin { get; set; } } } 主要/主机应用程序 namespace MyMEF { class clsMEF { private CompositionContainer _container; [Import(typeof(MefContracts.IPlugin))] public MefContracts.IPlugin plugin; public clsMEF() { Compose(); } void […]