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

时间:2010-03-05 15:10:09

标签: c# plugins

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

2 个答案:

答案 0 :(得分:3)

首先创建一个插件接口:

public interface IPlugIn
{
    // Your stuff here
}

然后,您可以将您的界面分发给处理插件的开发人员。

当您的应用程序启动时,它可以动态加载所有插件程序集,然后通过IPlugIn界面使用它们,而无需了解每个插件的内部结构。

<强>更新

我实际上发现了一篇文章,该文章更深入地介绍了我所描述的过程,并提供了更精细的例子。你可以在这里查看:

Writing Plugin-Based Applications in .NET

还有一个额外的好处......它带有Code Samples!

答案 1 :(得分:2)

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

  1. 您定义插件合约。它应该是公共接口,或者可以是具有抽象/虚拟方法的类。您应该将其移至单独的程序集并分发给插件开发人员
  2. 开发人员实现界面并生成程序集
  3. 使用Assembly.Load在运行时加载。
  4. GetTypes
  5. 列出类型
  6. 查找实现您的界面的类型
  7. Activator.CreateInstance
  8. 玩得开心
相关问题