我想知道是否可以编译并运行存储的代码,而不生成 exe 或任何类型的其他文件,基本上从内存中运行该文件。
基本上,主应用程序将具有一些存储的代码(可能会更改的代码),并且需要编译代码并执行它。无需创建任何文件。
创建文件,运行程序,然后删除文件不是一个选项。编译后的代码需要从内存中运行。
代码示例、指针或几乎任何内容都是受欢迎的:)
using (Microsoft.CSharp.CSharpCodeProvider foo =
new Microsoft.CSharp.CSharpCodeProvider())
{
var res = foo.CompileAssemblyFromSource(
new System.CodeDom.Compiler.CompilerParameters()
{
GenerateInMemory = true
},
"public class FooClass { public string Execute() { return \"output!\";}}"
);
var type = res.CompiledAssembly.GetType("FooClass");
var obj = Activator.CreateInstance(type);
var output = type.GetMethod("Execute").Invoke(obj, new object[] { });
}
这会根据包含的源代码字符串编译一个简单的类,然后实例化该类并反射性地调用其上的函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)