假设我有这种结构:
|
|-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有替代品吗?
答案 0 :(得分:1)
实际上,MEF正是您所需要的。它专为插件或可扩展体系结构而设计,并提供了您尝试自己实现的一系列基本功能。
托管扩展性框架(MEF)是一个组合层 .NET提高了灵活性,可维护性和可测试性 大型应用。 MEF可用于第三方插件 可扩展性,或者它可以带来松散耦合的好处 类似于插件的架构,适用于常规应用程序。
这个link提供了一个很好的介绍和基本的例子来解释MEF是如何工作的。