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 @@ + + + +