使用 CSharpCodeProvider 设置变量值
Set Variable Value using CSharpCodeProvider
我想知道是否有任何方法可以在将使用 编译的代码中传递变量值 CSharpCodeProvider
.
例如:
string code = @"
using System;
namespace First
{
public class Program
{
public int Value; // pass this value
public static void Main()
{
" +
"Console.WriteLine(\"Hello + Value\");"
+ @"
}
}
}
";
编译方法:
public void Compile(String Code)
{
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();
parameters.ReferencedAssemblies.Add("System.Drawing.dll");
parameters.GenerateInMemory = true;
parameters.GenerateExecutable = false;
CompilerResults results = provider.CompileAssemblyFromSource(parameters, Code);
}
所以我希望能够传递 Value
示例的值 2
而我所说的 ONE TIME
就像 compile time
所以编译后的代码将始终在其 运行 时间将显示值: 2
每当我执行应用程序 .
我希望它清楚!
使用 Mono.Cecil 参考详细信息解决 Documentatin
我想知道是否有任何方法可以在将使用 编译的代码中传递变量值 CSharpCodeProvider
.
例如:
string code = @"
using System;
namespace First
{
public class Program
{
public int Value; // pass this value
public static void Main()
{
" +
"Console.WriteLine(\"Hello + Value\");"
+ @"
}
}
}
";
编译方法:
public void Compile(String Code)
{
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();
parameters.ReferencedAssemblies.Add("System.Drawing.dll");
parameters.GenerateInMemory = true;
parameters.GenerateExecutable = false;
CompilerResults results = provider.CompileAssemblyFromSource(parameters, Code);
}
所以我希望能够传递 Value
示例的值 2
而我所说的 ONE TIME
就像 compile time
所以编译后的代码将始终在其 运行 时间将显示值: 2
每当我执行应用程序 .
我希望它清楚!
使用 Mono.Cecil 参考详细信息解决 Documentatin