Я не могу разрешить экземпляр ILogger в своем консольном приложении ...
Я использую Unity IoC и Serilog.
Регистрация выполняется следующим образом:
container = new UnityContainer();
container.RegisterFactory<ILogger>(factory =>
{
ILogger log = new LoggerConfiguration()
.WriteTo.Console()
.CreateLogger();
return log;
}, new ContainerControlledLifetimeManager());
И затем, когда я пытаюсь это сделать:
var logger = container.Resolve<ILogger>();
я получаю исключение:
Unity.ResolutionFailedException HResult = 0x80131500 Сообщение = Не удалось выбрать конструктор для Serilog.Core.Logger _____________________________________________________ Исключение произошло при:
• разрешающем типе: 'ILogger' сопоставлен с 'Logger'
Source = Unity.Container StackTrace: в Unity.UnityContainer.ExecuteValidatingPlan (BuilderContext & context)
в Unity.UnityContainer.Unity.IUnityContainer.Resolve (тип Type, имя строки, переопределяет ResolverOverride []) в Unity.UnityContainerExtensions.Resolve [T] (переопределяет контейнер IUnityContainer, переопределение ResolverOverride []) Исключение внутреннего исключения: исключение внутреннего исключения: 1выберите конструктор для Serilog.Core.Logger
Внутреннее исключение 2: InvalidRegistrationException: было сгенерировано исключение типа «Unity.Exceptions.InvalidRegistrationException».
Я даже попытался зарегистрировать его так:
container = new UnityContainer();
ILogger log = new LoggerConfiguration()
.WriteTo.Console()
.CreateLogger();
container.RegisterInstance<ILogger>(log);
, но с тем же результирующим исключением.
Пожалуйста, помогите