2010-11-30 72 views
0

我有一个Winform Gui服务于各种目的。我正在创建一个额外的插件,如果存在的话,将另一个tabpage添加到我的tabcontrol中,然后添加所需的控件等。c#通过插件DLL在winform中添加控件

我的问题是,我最好将其编码为主应用程序,即'if dll present create这个观点'或者我应该将其编码到dll并使用反射?是否有可能使用反射?

感谢/

回答

3

你也许应该考虑,它正是你要找的现有框架。对于为例,托管扩展框架MEF

MEF提出了 运行时的可扩展性问题的简单解决方案。直到 现在,任何想要 支持插件模型的应用程序需要 从 划伤创建自己的基础结构。这些插件通常是 应用程序特定的,并且不能在多个 实现中重复使用 。 MEF为主机应用程序 提供了一种 标准方式来公开自己并使用外部 扩展名。扩展的性质,可以在 不同的应用程序中重复使用。但是, 扩展仍然可以以特定于应用程序的方式实现 。 扩展本身可以依靠 彼此和MEF将确保 他们连接在一起在正确的 命令(另一件事你不会 担心)。 MEF为您的 应用程序提供了一套 发现方法来定位和加载 可用的扩展。

或者,如果你需要在单独的应用程序域,您可以使用托管加载项框架MAF

但在你的情况,我认为MEF应该做的伎俩。 虽然如果你只有这一个场景,可能会过度杀伤......但它是一个选项。

+0

Excellent..cheers。 – 2010-11-30 13:27:46