using Hyperbar.Windows.Interop; using Hyperbar.Windows.UI; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; namespace Hyperbar.Windows { //public static class IServiceCollectionExtensions //{ // public static IServiceCollection AddWidget(this IServiceCollection services) // where TWidget : // IWidget, // new() // { // IHost? host = new HostBuilder() // .UseContentRoot(AppContext.BaseDirectory) // .ConfigureAppConfiguration(config => // { // config.SetBasePath(AppContext.BaseDirectory); // config.AddJsonFile("Settings.json", true, true); // }) // .ConfigureServices((context, isolatedServices) => // { // isolatedServices.AddScoped(provider => // new ServiceFactory((type, parameters) => ActivatorUtilities.CreateInstance(provider, type, parameters!))); // isolatedServices.AddHostedService(); // isolatedServices.AddTransient(); // isolatedServices.AddScoped(); // isolatedServices.AddScoped(); // isolatedServices.AddSingleton(); // isolatedServices.AddScoped(); // isolatedServices.AddHandler(); // isolatedServices.AddHandler(); // isolatedServices.AddTransient(); // isolatedServices.AddContentTemplate(); // isolatedServices.AddContentTemplate(); // isolatedServices.AddContentTemplate(); // TWidget widget = new(); // IWidgetBuilder builder = widget.Create(); // isolatedServices.AddRange(builder.Services); // }).Build(); // services.AddTransient(provider => new WidgetContext(host.Services)); // host.Start(); // return services; // } //} }