Exemplo n.º 1
0
		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}");
                        }
                    }
                }
            }
        }