我正在用 C# 制作一个 IRC 机器人,我希望具有加载插件的功能......例如:会有一个包含一些代码的文本文件,然后程序将导入该文本文件的内容AS CODE...变成一个函数...这怎么可能?
sniperX
问问题
989 次
5 回答
1
我建议使用C#-script或IronPython之类的DLR 语言(我更喜欢后者)。但是,正如其他人指出的那样,运行程序收到的任何代码都是不安全的——更明智的想法是定义合同接口,并在签名的程序集中接受插件(实现该接口)。
于 2009-08-12T01:30:31.517 回答
0
您需要寻找动态代码编译(参见http://www.west-wind.com/presentations/dynamicCode/DynamicCode.htm,http://www.codeguru.com/csharp/csharp/cs_misc/designtechniques/article。 php/c10729/ , http://www.codeproject.com/KB/cs/Dynamic_Code_Generation.aspx )
您不认为通过反射将插件加载为 DLL 会更好吗?动态代码不会被签名,因此您无法验证代码是否来自受信任的来源,因此可能会向您的程序用户开放一些非常恶意的代码。
于 2009-08-12T01:20:01.937 回答
0
谢谢大家的帮助,但我希望在导入的代码和主代码之间共享代码,例如,会有一个文本文件,在加载主程序时,它会打开该文本文件并将其作为函数加载...一个可以共享公共字符串和整数之类的代码并激活其他功能一个命令和使用对象等的函数...这可能吗?
于 2009-08-12T18:00:56.750 回答