using CommunityToolkit.Mvvm.Messaging; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; namespace Toolkit.Foundation; public class DefaultHostBuilder : HostBuilder { public static IHostBuilder Create() { return new HostBuilder() .ConfigureServices((context, services) => { services.AddScoped(provider => new ServiceFactory((type, parameters) => ActivatorUtilities.CreateInstance(provider, type, parameters?.Where(x => x is not null).ToArray()!))); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(_ => WeakReferenceMessenger.Default); //services.AddScoped(); //services.AddTransient(); //services.AddScoped(); //services.AddTransient(); //services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddScoped>(provider => new ProxyService(provider.GetRequiredService())); services.AddScoped>(provider => new ProxyService(provider.GetRequiredService())); services.AddScoped>(provider => new ProxyService(provider.GetRequiredService())); services.AddTransient(); services.AddScoped(); services.AddTransient(); services.AddScoped(); services.AddSingleton(new NamedComponent("Root")); services.AddScoped(provider => [ new ComponentScopeDescriptor("Root", provider.GetRequiredService()) ]); services.AddTransient(); services.AddTransient(); //services.AddHandler(); //services.AddHandler(); //services.AddInitialization(); services.AddHostedService(); }); } }