using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Toolkit.Foundation; namespace Toolkit.Foundation; public class DefaultBuilder : HostBuilder { public static IHostBuilder Create() { return new HostBuilder() .UseContentRoot("Local", true) .ConfigureAppConfiguration(config => { config.AddJsonFile("Settings.json", true, true); }) .ConfigureServices((context, services) => { services.AddScoped(provider => new ServiceFactory((type, parameters) => ActivatorUtilities.CreateInstance(provider, type, parameters!))); services.AddSingleton(); services.AddScoped(); services.AddScoped(); services.AddTransient(); services.AddTransient(); services.AddScoped(); services.AddScoped>(provider => new ProxyService(provider.GetRequiredService())); services.AddScoped>(provider => new ProxyService(provider.GetRequiredService())); services.AddScoped>(provider => new ProxyService(provider.GetRequiredService())); services.AddScoped(); services.AddTransient(); services.AddTransient(); services.AddScoped(); services.AddTransient(); services.AddTransient(); services.AddScoped(provider => new ComponentScopeCollection { { "Default", provider.GetRequiredService() } }); services.AddTransient(); services.AddHandler(); services.AddHandler(); services.AddInitializer(); services.AddHostedService(); }); } }