可能重复:
Writing C# Plugin System
是否可以编写一个接受插件的程序?
我的程序应检查复制某些DLL的文件夹,然后查看这些文件并获取主程序传递给这些DLL所包含的函数的女巫参数。
我正在编写一个程序,用于检查某些Web中的新工作机会,如果读取每个Web的功能包含在不同的URL中,那将是完美的。如果可以的话,在这些网站改变时更新程序将非常容易。
答案 0 :(得分:3)
是
这就是像MEF这样的系统的工作方式。
正如您已经标记了问题c#我将使用这些术语但您可以使用任何语言执行此操作,只要您可以加载dll并查询它。
您创建一个框架,查找公开某些接口的程序集。如果他们存在加载它们。
要创建插件,请实现所需的接口,并将dll放入找到它的位置。
答案 1 :(得分:2)
绝对可能。有不同的方法。
一种方法是创建一个接口,例如IPlugin,它可能有一个init(设置,寄存器插件等),执行(运行命令,传递参数,返回值)和卸载方法。
或者你可以有一个PluginAttribute你可以放在你的类/方法上告诉C#app它是一个插件。
该应用可以使用反射并在程序集中查找插件类。