C# 包括始终将代码更改为活动程序
以以下函数为例:C# 包括始终将代码更改为活动程序,c#,include,C#,Include,以以下函数为例: void Changing(string var1, string var2, string var3) { } 我有用.txt文件编写的代码,我希望它能够动态加载到该函数中。每次调用函数时,代码可能会有所不同。我怎么能这样做 代码位于磁盘上的文本文件中 应在不停止程序执行的情况下动态加载代码 代码应该和从一开始就加载的代码没有区别,应该假装它总是在那里 要执行的文件的位置包含在var1中 你不能100%地假装它从一开始就在那里;你必须解决这个问题 如果代码位于外部文本文件中
void Changing(string var1, string var2, string var3)
{
}
我有用.txt
文件编写的代码,我希望它能够动态加载到该函数中。每次调用函数时,代码可能会有所不同。我怎么能这样做
var1
中你不能100%地假装它从一开始就在那里;你必须解决这个问题 如果代码位于外部文本文件中,则有多个选项:
- 使用
在运行时编译代码;您需要添加额外的fluff以使其成为定义良好的类(可能实现了一个公共接口);然后使用反射创建该类型的实例;是的,小心你不能卸货,等等CSharpCodeProvider
- 等到.NET5.0,并希望编译器即服务(compiler-as-a-service)保持不变
- 使用Mono,其中编译器即服务
- 通过IronPython以python脚本的形式运行外部文件(例如)(请注意,这会更改脚本语言)
我先看最后一个选项(IronPython)。。。似乎适合这份工作。你不能100%地假装它从一开始就在那里;你必须解决这个问题 如果代码位于外部文本文件中,则有多个选项:
- 使用
在运行时编译代码;您需要添加额外的fluff以使其成为定义良好的类(可能实现了一个公共接口);然后使用反射创建该类型的实例;是的,小心你不能卸货,等等CSharpCodeProvider
- 等到.NET5.0,并希望编译器即服务(compiler-as-a-service)保持不变
- 使用Mono,其中编译器即服务
- 通过IronPython以python脚本的形式运行外部文件(例如)(请注意,这会更改脚本语言)
我先看最后一个选项(IronPython)。。。似乎是为此作业而设计的。您可以像或尝试使用脚本语言。我还没有实现这些,但已经看到类似的东西在java中工作。您可以尝试使用类似的脚本语言。我还没有实现这些,但已经看到类似的东西在java中发挥作用。这闻起来像是家庭作业,或者说是一种复杂的方式创建了注入漏洞。这闻起来像是家庭作业,或者是一种复杂的方式创建了注入漏洞。