在C#中为我自己的项目创建我自己的插件

问题描述:

我正在C#中开发一个项目,它是关于电子学习的。该项目应该使用插件作为主要输入,没有它们就无法运行。 我不知道如何使用插件,我不知道如何在我的程序中编译插件,或者如何在应用程序中安装插件。 我在这里询问有关参考资料,或任何有用的想法,可以帮助我。在C#中为我自己的项目创建我自己的插件

+0

使用MEF,看上去很不错的类型。 http://www.codeplex.com/MEF – 2010-03-05 15:11:49

+0

也有Mono.Addins:http://www.mono-project.com/Mono.Addins – Emmanuel 2010-03-05 15:17:46

开始通过创建一个插件接口:

public interface IPlugIn 
{ 
    // Your stuff here 
} 

然后,您可以发布你的界面上的插件工作的开发人员。

当您的应用程序启动时,它可以动态加载所有插件程序集,然后通过IPlugIn接口使用它们,而无需知道每个插件的内部。

UPDATE

事实上,我发现,进入我更深入更ellaborate例中描述的处理的制品。您可以点击此处查看:

Writing Plugin-Based Applications in .NET

和一个额外的好处......它带有示例代码!

+0

非常感谢我想我会用这个简单的方法,如果你有更多的经验或参考资料,请让我知道,再次感谢:) – Lisa 2010-03-14 23:53:48

如果你的插件不太复杂,你可以避免使用像MEF这样的可扩展性框架。

  1. 您可以为插件定义合同。它应该是公共接口,或者可以是抽象/虚拟方法的类。您应该将其移动到独立的程序集并分发给插件开发人员
  2. 开发人员实现接口并生成程序集
  3. 使用Assembly.Load在运行时加载。
  4. 列表类型由GetTypes
  5. 找到实现你的接口
  6. Activator.CreateInstance
  7. 玩得开心