瀏覽代碼

refactor: Simplify application initialization

Bruce Wayne 3 年之前
父節點
當前提交
9295d33edf
共有 1 個文件被更改,包括 8 次插入24 次删除
  1. 8 24
      NatTypeTester/App.xaml.cs

+ 8 - 24
NatTypeTester/App.xaml.cs

@@ -1,5 +1,4 @@
 using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
 using Splat.Microsoft.Extensions.DependencyInjection;
 using System.Windows;
 using Volo.Abp;
@@ -9,22 +8,23 @@ namespace NatTypeTester;
 
 public partial class App
 {
-	private readonly IHost _host;
-	private readonly IAbpApplicationWithExternalServiceProvider _application;
+	private readonly IAbpApplicationWithInternalServiceProvider _application;
 
 	public App()
 	{
-		_host = CreateHostBuilder();
-		_application = _host.Services.GetRequiredService<IAbpApplicationWithExternalServiceProvider>();
+		_application = AbpApplicationFactory.Create<NatTypeTesterModule>(options =>
+		{
+			options.UseAutofac();
+		});
 	}
 
 	protected override async void OnStartup(StartupEventArgs e)
 	{
 		try
 		{
-			await _host.StartAsync();
-			Initialize(_host.Services);
-			_host.Services.GetRequiredService<MainWindow>().Show();
+			await _application.InitializeAsync();
+			_application.ServiceProvider.UseMicrosoftDependencyResolver();
+			_application.Services.GetRequiredService<MainWindow>().Show();
 		}
 		catch (Exception ex)
 		{
@@ -35,21 +35,5 @@ public partial class App
 	protected override async void OnExit(ExitEventArgs e)
 	{
 		await _application.ShutdownAsync();
-		await _host.StopAsync();
-		_host.Dispose();
-	}
-
-	private void Initialize(IServiceProvider serviceProvider)
-	{
-		_application.Initialize(serviceProvider);
-		serviceProvider.UseMicrosoftDependencyResolver();
-	}
-
-	private static IHost CreateHostBuilder()
-	{
-		return Host.CreateDefaultBuilder()
-			.UseAutofac()
-			.ConfigureServices((_, services) => services.AddApplication<NatTypeTesterModule>())
-			.Build();
 	}
 }