Files
XLAB/XLAB2/AppHost.cs
Курнат Андрей a2b4762702 edit
2026-04-03 21:06:10 +03:00

40 lines
1.6 KiB
C#

using System;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using XLAB2.Infrastructure;
namespace XLAB2
{
internal static class AppHost
{
public static IHost Create()
{
return Host.CreateDefaultBuilder()
.UseContentRoot(AppContext.BaseDirectory)
.ConfigureAppConfiguration((context, config) =>
{
config.Sources.Clear();
config.SetBasePath(AppContext.BaseDirectory);
config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
config.AddEnvironmentVariables();
})
.ConfigureServices((_, services) =>
{
services.AddSingleton<IDatabaseConnectionFactory>(_ => SqlServerConnectionFactory.Current);
services.AddSingleton(new DocumentNumberDirectoryService(System.IO.Path.Combine(AppContext.BaseDirectory, "Assets", "document-number-directory.json")));
services.AddTransient<PsvDataService>();
services.AddTransient<MainWindow>(provider => new MainWindow(
provider.GetRequiredService<PsvDataService>(),
provider.GetRequiredService<DocumentNumberDirectoryService>()));
})
.UseDefaultServiceProvider((_, options) =>
{
options.ValidateOnBuild = true;
options.ValidateScopes = true;
})
.Build();
}
}
}