public static async Task <int> Main(string[] args) { if (args.Contains("--standalone")) { await StandaloneGeneratorRunner.RunAsync(args); return(0); } if (args.Contains("--launch-debugger") && !Debugger.IsAttached) { Debugger.Launch(); } if (!HasServerArgument(args)) { Console.WriteLine("Not a valid invocation of this AutoRest extension. Invoke this extension through the AutoRest pipeline."); return(1); } var connection = new JsonRpcConnection(Console.OpenStandardInput(), Console.OpenStandardOutput(), new Dictionary <string, IncomingRequestAction> { { nameof(IncomingMessageSerializer.GetPluginNames), (c, r) => r.GetPluginNames(PluginProcessor.PluginNames) }, { nameof(IncomingMessageSerializer.Process), (c, r) => r.Process(c, PluginStart) }, { nameof(IncomingMessageSerializer.Shutdown), (c, r) => r.Shutdown(c.CancellationTokenSource) } }); connection.Start(); Console.Error.WriteLine("Shutting Down"); return(0); }