Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharpNotesForProfessionals.pdf
Скачиваний:
57
Добавлен:
20.05.2023
Размер:
6.12 Mб
Скачать

Chapter 154: Runtime Compile

Section 154.1: RoslynScript

Microsoft.CodeAnalysis.CSharp.Scripting.CSharpScript is a new C# script engine.

var code = "(1 + 2).ToString()";

var run = await CSharpScript.RunAsync(code, ScriptOptions.Default); var result = (string)run.ReturnValue;

Console.WriteLine(result); //output 3

You can compile and run any statements, variables, methods, classes or any code segments.

Section 154.2: CSharpCodeProvider

Microsoft.CSharp.CSharpCodeProvider can be used to compile C# classes.

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

GoalKicker.com – C# Notes for Professionals

742