From ef87ff76fcb438844e646c9d0051aa959d8b2eba Mon Sep 17 00:00:00 2001 From: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com> Date: Wed, 8 Dec 2021 23:52:33 +0200 Subject: [PATCH] Use top-level statements in demo --- CliFx.Demo/Program.cs | 44 +++++++++++++++++-------------------------- 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/CliFx.Demo/Program.cs b/CliFx.Demo/Program.cs index e696b7c..3a05f47 100644 --- a/CliFx.Demo/Program.cs +++ b/CliFx.Demo/Program.cs @@ -1,35 +1,25 @@ -using System; -using System.Threading.Tasks; +using CliFx; using CliFx.Demo.Commands; using CliFx.Demo.Domain; using Microsoft.Extensions.DependencyInjection; -namespace CliFx.Demo; +// We use Microsoft.Extensions.DependencyInjection for injecting dependencies in commands +var services = new ServiceCollection(); -public static class Program -{ - private static IServiceProvider GetServiceProvider() - { - // We use Microsoft.Extensions.DependencyInjection for injecting dependencies in commands - var services = new ServiceCollection(); +// Register services +services.AddSingleton(); - // Register services - services.AddSingleton(); +// Register commands +services.AddTransient(); +services.AddTransient(); +services.AddTransient(); +services.AddTransient(); - // Register commands - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); +var serviceProvider = services.BuildServiceProvider(); - return services.BuildServiceProvider(); - } - - public static async Task Main() => - await new CliApplicationBuilder() - .SetDescription("Demo application showcasing CliFx features.") - .AddCommandsFromThisAssembly() - .UseTypeActivator(GetServiceProvider().GetRequiredService) - .Build() - .RunAsync(); -} \ No newline at end of file +return await new CliApplicationBuilder() + .SetDescription("Demo application showcasing CliFx features.") + .AddCommandsFromThisAssembly() + .UseTypeActivator(serviceProvider.GetRequiredService) + .Build() + .RunAsync(); \ No newline at end of file