C# 使用MEF允许用户添加自定义插件、运行方法和更改数据点集合
我有一个用Prism和MEF构建的应用程序。 我有一些模块(在同一个解决方案中定义)可以加载,并且一切正常 然而,现在我想允许用户添加他们自己的插件(基本上这些插件应该改变数据点的集合)——因此换句话说,用户创建一个算法(插件),改变ViewModel中的这些数据点 我需要定义某种“契约”,用户在创建新插件时需要遵守这种契约。我该怎么做C# 使用MEF允许用户添加自定义插件、运行方法和更改数据点集合,c#,plugins,mef,C#,Plugins,Mef,我有一个用Prism和MEF构建的应用程序。 我有一些模块(在同一个解决方案中定义)可以加载,并且一切正常 然而,现在我想允许用户添加他们自己的插件(基本上这些插件应该改变数据点的集合)——因此换句话说,用户创建一个算法(插件),改变ViewModel中的这些数据点 我需要定义某种“契约”,用户在创建新插件时需要遵守这种契约。我该怎么做 插件应该是/plugin文件夹中的一个.dll,并且应该在运行时加载,应该在包含每个插件的用户控件的视图中填充ListView。MEF将使这项工作非常简单和顺利
插件应该是/plugin文件夹中的一个.dll,并且应该在运行时加载,应该在包含每个插件的用户控件的视图中填充ListView。MEF将使这项工作非常简单和顺利 对于插件:
[Export(typeof(IPlugin))]
public class Plugin : IPlugin
[ImportMany(typeof(IPlugin))]
public IEnumerable<IPlugin> Plugins{ get; set; }
this
应该是具有该ImportManyAttribute
的对象
container.ComposeParts(this);
MEF将使这项工作变得非常容易和顺利 对于插件:
[Export(typeof(IPlugin))]
public class Plugin : IPlugin
[ImportMany(typeof(IPlugin))]
public IEnumerable<IPlugin> Plugins{ get; set; }
this
应该是具有该ImportManyAttribute
的对象
container.ComposeParts(this);