使用CSharpCodeProvider设置变量值

时间:2016-10-05 14:26:07

标签: c# 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\");"
            + @"
        }
    }
}

&#34 ;;

编译方法:

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每当我执行应用程序时。

我希望它清楚!

1 个答案:

答案 0 :(得分:0)

解决使用Mono.Cecil参考详情Documentatin