如何创建非常基本的插件系统

时间:2010-01-15 18:25:45

标签: c# plugins

所以我们先设计一下设计。我有一个带按钮的组合框,我有一个插件文件夹。

假设我在plugins文件夹中有一个插件imageeffect.cs。这个类必须具有诸如“标题”之类的属性。我的程序得到这个“标题”并用这个标题动态加载组合框。所以现在我的程序识别插件。现在当用户点击按钮时,我希望将一些数据(由我的程序处理)传递给imageeffect.cs插件,在该插件中它执行任何工作并返回状态。

所以回顾一下。我的程序读取一个插件目录。将每个插件的“title”属性(定义为创建插件的人)加载到组合框中。当用户单击按钮时,“数据”或在这种情况下图像被发送到插件,插件可以对其进行操作。它然后返回“状态”,或者在这种情况下返回一张具有所需效果的图片。

3 个答案:

答案 0 :(得分:9)

带有MEF

DirectoryCatalog

答案 1 :(得分:4)

我写了一篇博客帖子,说明了一个非常简单的插件系统。这可能足以满足您的需求:

http://crazorsharp.blogspot.com/2009/03/net-reflection-part-2-loading.html

答案 2 :(得分:0)

确定。首先,我建议你的插件是.dlls编译而不仅仅是.cs文件。但是,如果您只想使用.cs文件,请先看一下:

http://www.codeproject.com/KB/cs/livecodedotnet.aspx

然后为了实现插件系统,请看看这篇文章:

http://www.codeproject.com/KB/cs/c__plugin_architecture.aspx

希望有所帮助:)