1

假设我有这种结构:

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

文件夹中的每个类都PluginsPluginBase.cs.

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

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

在线搜索我发现了一些关于托管可扩展性框架的信息,但我不确定这是否是我需要的。

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

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

任何想法?

编辑:

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

MEF2有什么替代品吗?

4

1 回答 1

1

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

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

http://mef.codeplex.com/

链接提供了一个很好的介绍和基本示例来解释 MEF 的工作原理。

于 2013-07-11T13:49:16.443 回答