在WP8上构建一个插件系统

时间:2013-07-11 13:31:48

标签: c# plugins windows-phone-8

假设我有这种结构:

|
|-Plugins
         |-Plugin1.cs
         |-Plugin2.cs
         |-Plugin3.cs
|-PluginBase.cs
|-PluginList.cs

Plugins文件夹中的每个类都来自PluginBase.cs

我需要PluginList.cs导出可用插件的列表,以便应用可以使用它来让用户选择他想要的插件。

现在,由于这是我第一次使用C#,我不知道它是如何工作的。

在线搜索我发现了一些关于Managed Extensibility Framework的内容,但我不确定这是否是我需要的。

我最初的想法是扫描插件目录并列出它们,但我不知道C#是否等同于Java的Class类,所以我还没试过。

由于我在谈论移动应用程序,我也希望它尽可能快,所以也许这种扫描方法不是最好的。

有什么想法吗?

编辑:

所以,最好的办法是使用MEF2,但是我无法使它工作,因为Visual Studio不允许我将程序集添加到项目中(尝试使用Nuget并手动添加dll)。

MEF2有替代品吗?

1 个答案:

答案 0 :(得分:1)

实际上,MEF正是您所需要的。它专为插件或可扩展体系结构而设计,并提供了您尝试自己实现的一系列基本功能。

  

托管扩展性框架(MEF)是一个组合层   .NET提高了灵活性,可维护性和可测试性   大型应用。 MEF可用于第三方插件   可扩展性,或者它可以带来松散耦合的好处   类似于插件的架构,适用于常规应用程序。

http://mef.codeplex.com/

这个link提供了一个很好的介绍和基本的例子来解释MEF是如何工作的。