【问题标题】:Set Variable Value using CSharpCodeProvider使用 CSharpCodeProvider 设置变量值
【发布时间】:2016-10-05 14:26:07
【问题描述】:

我想知道是否有任何方法可以在将使用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,每当我执行应用程序时。

我希望它清楚!

【问题讨论】:

  • 您能确定code 是特定格式吗?例如。要设置的值是public int Value = {0};?

标签: c# csharpcodeprovider


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-12-20
    • 1970-01-01
    • 2023-03-31
    • 2012-04-27
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    相关资源
    最近更新 更多