wpf 使用 Generic Host

wpf 使用Generic Host

public partial class App : Application
{
    private IHost _host;

    public App()
    {
        _host = new HostBuilder()
            .ConfigureAppConfiguration(
                (context, configurationBuilder) =>
                {
                    configurationBuilder.SetBasePath(
                        context.HostingEnvironment.ContentRootPath
                    );
                    // 下一步可以添加配置文件
                }
            )
            .ConfigureServices(services => services.AddSingleton<MainWindow>())
            .ConfigureLogging(logger => logger.AddDebug())
            .Build();
    }

    protected async override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        await _host.StartAsync();

        var mainWindow = _host.Services.GetRequiredService<MainWindow>();
        mainWindow.Show();
        return;
    }

    protected async override void OnExit(ExitEventArgs e)
    {
        base.OnExit(e);
        await _host.StopAsync();
        return;
    }
}

window 和 page 等 能否 构造函数完成依赖注入还未尝试

posted @ 2022-09-28 17:45  我说的像切身之痛  阅读(284)  评论(0)    收藏  举报