0

を使用して一度コンパイルされるコードに変数値を渡す方法があるかどうか疑問に思っていました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 TIMEcompile time、コンパイルされたコードが実行時に2常に値を表示するように、アプリケーションを実行するたびに.

私はそれが明確であることを願っています!

4

1 に答える 1

0

Mono.Cecil リファレンスの詳細を使用して解決

于 2016-10-18T19:26:15.267 に答える