using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Unity; using Unity.Microsoft.Logging; namespace AutomobilePlantContracts.DI { public class UnityServiceContainer : IDependencyContainer { private UnityContainer? _unityContainer; public UnityServiceContainer() { _unityContainer = new UnityContainer(); } public void AddLogging(Action configure) { _unityContainer.AddExtension(new LoggingExtension(LoggerFactory.Create(configure))); } public void RegisterType(bool isSingle) where U : class, T where T : class { if (isSingle) { _unityContainer.RegisterSingleton(); } else { _unityContainer.RegisterType(); } } public void RegisterType(bool isSingle) where T : class { if (isSingle) { _unityContainer.RegisterSingleton(); } else { _unityContainer.RegisterType(); } } public T Resolve() { return _unityContainer.Resolve()!; } } }