private static async Task MainAsync(string[] args) { File.WriteAllLines("secrets.txt", new[] { "Secret password: 12345" }); Console.Out.WriteLine( "Enter in your script - type \"STOP\" to quit:"); var context = new ScriptingContext(); var options = ScriptOptions.Default .AddImports( typeof(ImmutableArrayExtensions).Namespace) .AddReferences( typeof(ImmutableArrayExtensions).Assembly); while (true) { var code = Console.In.ReadLine(); if (code == "STOP") { break; } else { var script = CSharpScript.Create(code, globalsType: typeof(ScriptingContext), options: options); var compilation = script.GetCompilation(); //var diagnostics = compilation.GetDiagnostics(); var diagnostics = compilation.GetDiagnostics().Union( Program.VerifyCompilation(compilation)).ToImmutableArray(); if (diagnostics.Length > 0) { foreach (var diagnostic in diagnostics) { Console.Out.WriteLine(diagnostic); } } else { var result = await CSharpScript.RunAsync(code, globals: context, options: options); if(result.ReturnValue != null) { Console.Out.WriteLine($"\t{result.ReturnValue}"); } } } } }
private static async Task MainAsync(string[] args) { File.WriteAllLines("secrets.txt", new[] { "Secret password: 12345" }); Console.Out.WriteLine( "Enter in your script - type \"STOP\" to quit:"); var context = new ScriptingContext(); var options = ScriptOptions.Default .AddImports( typeof(ImmutableArrayExtensions).Namespace) .AddReferences( typeof(ImmutableArrayExtensions).Assembly); while (true) { var code = Console.In.ReadLine(); if (code == "STOP") { break; } else { var script = CSharpScript.Create(code, globalsType: typeof(ScriptingContext), options: options); var compilation = script.GetCompilation(); //var diagnostics = compilation.GetDiagnostics(); var diagnostics = compilation.GetDiagnostics().Union( Program.VerifyCompilation(compilation)).ToImmutableArray(); if (diagnostics.Length > 0) { foreach (var diagnostic in diagnostics) { Console.Out.WriteLine(diagnostic); } } else { var result = await CSharpScript.RunAsync(code, globals : context, options : options); if (result.ReturnValue != null) { Console.Out.WriteLine($"\t{result.ReturnValue}"); } } } } }