Прописал зависимости и добавил IoC контейнер

This commit is contained in:
Никита Потапов 2024-05-08 00:56:34 +04:00
parent c9f40b690a
commit 164322faa1
2 changed files with 37 additions and 1 deletions

View File

@ -8,4 +8,15 @@
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="NLog.Extensions.Logging" Version="5.3.11" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MedicalDatabaseContracts\MedicalDatabaseContracts.csproj" />
<ProjectReference Include="..\MedicalPostgresqlDatabase\MedicalPostgresqlDatabase.csproj" />
</ItemGroup>
</Project>

View File

@ -1,9 +1,18 @@
using MedicalDatabaseContracts;
using MedicalDatabaseContracts.Models;
using MedicalPostgresqlDatabase.Storages;
using MedicalView.Visits;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using NLog.Extensions.Logging;
using System.Text;
namespace MedicalView
{
internal static class Program
{
private static ServiceProvider? _serviceProvider;
public static ServiceProvider? ServiceProvider => _serviceProvider;
/// <summary>
/// The main entry point for the application.
/// </summary>
@ -13,7 +22,23 @@ namespace MedicalView
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
Application.Run(new FormMain());
var services = new ServiceCollection();
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
ConfigureServices(services);
_serviceProvider = services.BuildServiceProvider();
Application.Run(_serviceProvider.GetRequiredService<FormMain>());
}
private static void ConfigureServices(ServiceCollection services)
{
services.AddLogging(option =>
{
option.SetMinimumLevel(LogLevel.Information);
option.AddNLog("nlog.config");
});
////services.AddTransient<IComponentStorage, ComponentStorage>();
services.AddTransient<IStorage<Diagnose>, DiagnosesStorage>();
services.AddTransient<FormMain>();
}
}
}