我希望这个问题有道理。基本上,我正在寻找一套指南,甚至是一个教程,它将展示如何创建一个可以轻松添加和删除“模块”或“加载项”的应用程序
例如,在Microsoft Office中,您通常会看到可以下载和安装的程序,它们只会在Microsoft Word(例如)中添加一个额外的选项卡,以实现一些新功能。
我有几个使用基本相同的数据源的应用程序,我想整合它们,并且还可以在未来添加更多功能,而不需要1.需要全新安装和2.调整每个部分我的代码。
我正在寻找一个可以开始的地方。
提前致谢。
**
编辑:详细说明...... 我特别想到的是一个应用程序,它访问存储在文本文件中的大量数据,并使用某些数据来创建一些图表,也许还有一些表格。我希望能够使用相同的数据在将来添加不同的图表。因此,您可以单击Button_A并生成Graph_A,几周后,您可以单击Button_B并生成Graph_B。
如果我能想出一种只需要从文件中读取一次数据的方法,那将是非常好的,但我知道这将需要稍微调整我的DataReader类。
答案 0 :(得分:3)
一个开始的地方是为将来的模块定义一个接口,并构建一个实用程序,扫描其中的所有dll,寻找实现所述接口的类。
找到支持类后,您可以在运行时创建实例并添加到应用程序中。这是.NET中支持“插件”的常用习惯用法
Activator类是在运行时从Type创建实例的常用方法。
http://msdn.microsoft.com/en-us/library/system.activator.aspx
如果您的问题没有更多信息,很难提供更多详细信息。你能详细说一下吗?
答案 1 :(得分:3)
查看Microsoft的Composite Application Library。
它针对的是WPF,但你可以从那里得到一些想法。
答案 2 :(得分:2)
正如Adam所说,首先要做的是定义插件模块的接口 - 他们期望从容器接收什么,以及容器必须能够调用哪些方法?
就容器本身而言,我偏爱MEF作为定位技术;您可以在添加新DLL时创建目录并重新组合系统。我为此构建了一个类似的系统来解析不同的文件,MEF的组合功能对于运行时发现来说非常棒。