using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using MultiTerm.Core.ViewModel; using Common.StartupHelpers; using System.Windows; using MultiTerm.Core.Common; namespace MultiTerm.Wpf; public partial class App : Application { public static IHost? AppHost { get; private set; } public App() { // create dependency injection host AppHost = Host.CreateDefaultBuilder() .ConfigureServices((hostContext, services) => { services.AddSingleton(); // viewmodels services.AddSingleton(); // subcontrols services.AddSubControlFactory(); }) .Build(); } protected override async void OnStartup(StartupEventArgs e) { await AppHost!.StartAsync(); // instanciate startup form and show var startupForm = AppHost.Services.GetRequiredService(); startupForm.Show(); base.OnStartup(e); } protected override async void OnExit(ExitEventArgs e) { await AppHost!.StopAsync(); base.OnExit(e); } }