From c6f7dee51f9c40dfbeead760452d2c6b979e9a32 Mon Sep 17 00:00:00 2001 From: Danila_Mochalov Date: Sat, 22 Apr 2023 23:02:18 +0400 Subject: [PATCH] =?UTF-8?q?unity=20container=20=D0=BF=D0=BE=D0=BC=D0=BD?= =?UTF-8?q?=D0=B5=D1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DI/UnityDependencyContainer.cs | 44 +++++++++++++++++++ .../LawFirmContracts/LawFirmContracts.csproj | 1 + .../LawFirmDatabaseImplement.csproj | 4 ++ .../LawFirmFileImplement.csproj | 4 ++ .../LawFirmListImplements.csproj | 4 ++ 5 files changed, 57 insertions(+) create mode 100644 LawFirm/LawFirmContracts/DI/UnityDependencyContainer.cs diff --git a/LawFirm/LawFirmContracts/DI/UnityDependencyContainer.cs b/LawFirm/LawFirmContracts/DI/UnityDependencyContainer.cs new file mode 100644 index 0000000..81bf738 --- /dev/null +++ b/LawFirm/LawFirmContracts/DI/UnityDependencyContainer.cs @@ -0,0 +1,44 @@ +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Unity; +using Unity.Lifetime; +using Unity.Microsoft.Logging; + +namespace LawFirmContracts.DI +{ + public class UnityDependencyContainer : IDependencyContainer + { + private readonly IUnityContainer _container; + + public UnityDependencyContainer() + { + _container = new UnityContainer(); + } + + public void AddLogging(Action configure) + { + var factory = LoggerFactory.Create(configure); + _container.AddExtension(new LoggingExtension(factory)); + } + + public void RegisterType(bool isSingle) where T : class + { + _container.RegisterType(isSingle ? TypeLifetime.Singleton : TypeLifetime.Transient); + + } + + public T Resolve() + { + return _container.Resolve(); + } + + void IDependencyContainer.RegisterType(bool isSingle) + { + _container.RegisterType(isSingle ? TypeLifetime.Singleton : TypeLifetime.Transient); + } + } +} diff --git a/LawFirm/LawFirmContracts/LawFirmContracts.csproj b/LawFirm/LawFirmContracts/LawFirmContracts.csproj index 89ab575..bdfcc48 100644 --- a/LawFirm/LawFirmContracts/LawFirmContracts.csproj +++ b/LawFirm/LawFirmContracts/LawFirmContracts.csproj @@ -8,6 +8,7 @@ + diff --git a/LawFirm/LawFirmDatabaseImplement/LawFirmDatabaseImplement.csproj b/LawFirm/LawFirmDatabaseImplement/LawFirmDatabaseImplement.csproj index 1590021..806d212 100644 --- a/LawFirm/LawFirmDatabaseImplement/LawFirmDatabaseImplement.csproj +++ b/LawFirm/LawFirmDatabaseImplement/LawFirmDatabaseImplement.csproj @@ -20,4 +20,8 @@ + + + + diff --git a/LawFirm/LawFirmFileImplement/LawFirmFileImplement.csproj b/LawFirm/LawFirmFileImplement/LawFirmFileImplement.csproj index 77fe5b1..eff5599 100644 --- a/LawFirm/LawFirmFileImplement/LawFirmFileImplement.csproj +++ b/LawFirm/LawFirmFileImplement/LawFirmFileImplement.csproj @@ -11,4 +11,8 @@ + + + + diff --git a/LawFirm/LawFirmListImplements/LawFirmListImplements.csproj b/LawFirm/LawFirmListImplements/LawFirmListImplements.csproj index 3480974..55c291d 100644 --- a/LawFirm/LawFirmListImplements/LawFirmListImplements.csproj +++ b/LawFirm/LawFirmListImplements/LawFirmListImplements.csproj @@ -15,4 +15,8 @@ + + + +