编写一个接受插件的程序

时间:2011-02-11 22:59:32

标签: c#

  

可能重复:
  Writing C# Plugin System

是否可以编写一个接受插件的程序?

我的程序应检查复制某些DLL的文件夹,然后查看这些文件并获取主程序传递给这些DLL所包含的函数的女巫参数。

我正在编写一个程序,用于检查某些Web中的新工作机会,如果读取每个Web的功能包含在不同的URL中,那将是完美的。如果可以的话,在这些网站改变时更新程序将非常容易。

2 个答案:

答案 0 :(得分:3)

这就是像MEF这样的系统的工作方式。

正如您已经标记了问题c#我将使用这些术语但您可以使用任何语言执行此操作,只要您可以加载dll并查询它。

您创建一个框架,查找公开某些接口的程序集。如果他们存在加载它们。

要创建插件,请实现所需的接口,并将dll放入找到它的位置。

答案 1 :(得分:2)

绝对可能。有不同的方法。

一种方法是创建一个接口,例如IPlugin,它可能有一个init(设置,寄存器插件等),执行(运行命令,传递参数,返回值)和卸载方法。

或者你可以有一个PluginAttribute你可以放在你的类/方法上告诉C#app它是一个插件。

该应用可以使用反射并在程序集中查找插件类。