1
68
使用AppDomain
将组件装入自己的组件更安全、更灵活。
因此,而不是 the answer given previously :
我建议如下(改编自 this answer to a related question ):
现在您可以卸载程序集并具有不同的安全设置。
如果您想要更大的灵活性和动态加载和卸载程序集的能力,您应该查看托管外接程序框架(即
|
2
46
如果您无法访问
如果您可以访问
|
3
11
我做的正是你在我的规则引擎中寻找的,它使用 CS-Script 用于动态编译、加载和运行C。它应该可以很容易地翻译成您正在寻找的内容,我将给出一个示例。首先,代码(删去部分):
这将采用T类型的接口,将.cs文件编译为程序集,实例化给定类型的类,并将实例化的类与T接口对齐。基本上,您只需确保实例化的类实现了该接口。我使用属性设置和访问所有内容,如:
对于您的示例,您希望调用run(),因此我将创建一个定义run()方法的接口,如下所示:
然后生成一个实现它的类,如下所示:
将rulesEngine的名称更改为类似testharness的名称,并设置属性:
然后,您可以在任何地方调用它,只需运行:
它可能对插件系统很有用,但我的代码仅限于加载和运行一个文件,因为我们的所有规则都在一个C源文件中。不过,我认为修改它非常容易,只需为您想要运行的每个文件传入类型/源文件即可。您只需要将代码从getter移到一个接受这两个参数的方法中。 同时,用你的易怒来代替Itesturner。 |
4
5
您将需要使用反射来获取类型“testranner”。使用assembly.getType方法。
|
5
2
构建程序集时,可以调用
请记住,您需要使用这个签名,并注意它不必命名。
|
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
Dansih · .Net核心自定义身份验证方案 2 年前 |
lolorekkk · 面板插入。NET WinForm 2 年前 |