【发布时间】:2011-07-18 19:51:02
【问题描述】:
我正在编写一个基于插件的简单程序。我有一个接口IPlugin,它有一些方法和功能,在我的主程序中有一个List<Plugin>。为了简单起见,假设它是这样定义的:
public interface IPlugin
{
public void OnKeyPressed(char key);
}
每次按下一个键时,我都会遍历插件列表,并在每个插件上调用OnKeyPressed(c)。
我可以像这样创建一个类,并将其添加到列表中...
public class PrintPlugin
{
public void OnKeyPressed(char key)
{
Console.WriteLine(c);
}
}
然后每当你按下一个键,它就会被打印出来。但我希望能够从 DLL 文件加载插件。 This link 很有帮助,但它没有解释如何让 DLL 中的类实现我的 IPlugin 接口......我该怎么做?真的不想每次做插件都要复制IPlugin.cs文件...
【问题讨论】:
-
你可以添加对你的库的引用,因为你可以使用你的插件界面。
-
我希望能够在运行时加载它们,以便用户可以创建自己的插件。
-
那么你应该创建一个类似
List<Plugin>的属性,这样用户就可以将他们的插件添加到你的列表中。 -
如果您阅读原始帖子,我已经拥有其中之一。我的问题是,我希望插件编写者能够在他们的插件中实现我的
IPlugin接口。 -
您应该将您的 IPlugin 程序集分享给
plugin writers。