수색…


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