using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; namespace Hyperbar.Desktop { public static class IServiceCollectionExtensions { public static IServiceCollection AddSomething(this IServiceCollection services) where TCommandBuilder : ICommandBuilder, new() { TCommandBuilder builder = new(); IHost? host = new HostBuilder() .ConfigureServices(services => { services.AddTransient(); services.AddTransient(); builder.Create(services); }).Build(); services.AddTransient(provider => new CommandContext(host.Services)); return services; } } }