C# Language
ランタイムコンパイル
サーチ…
RoslynScript
Microsoft.CodeAnalysis.CSharp.Scripting.CSharpScript
は新しいC#スクリプトエンジンです。
var code = "(1 + 2).ToString()";
var run = await CSharpScript.RunAsync(code, ScriptOptions.Default);
var result = (string)run.ReturnValue;
Console.WriteLine(result); //output 3
ステートメント、変数、メソッド、クラス、またはコードセグメントをコンパイルして実行することができます。
CSharpCodeProvider
Microsoft.CSharp.CSharpCodeProvider
を使用してC#クラスをコンパイルできます。
var code = @"
public class Abc {
public string Get() { return ""abc""; }
}
";
var options = new CompilerParameters();
options.GenerateExecutable = false;
options.GenerateInMemory = false;
var provider = new CSharpCodeProvider();
var compile = provider.CompileAssemblyFromSource(options, code);
var type = compile.CompiledAssembly.GetType("Abc");
var abc = Activator.CreateInstance(type);
var method = type.GetMethod("Get");
var result = method.Invoke(abc, null);
Console.WriteLine(result); //output: abc
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow