проблема рекурсивного использования singleton'ов,
Есть логгер, который передает данные в очередь
Для того чтобы его проинициализировать нужно передавать строку подключения к очереди в конструктор
Эта строка подключения читается из настроек, которые загружаются специальным компонентом (допустим Settings), который в свою очередь использует тот же самый логгер при инициализации
Без DI это сейчас работает таким образом
- инициализируются singleton's для Logger и Settings
- читаются настройки, и затем строка соединения передается в Logger через метод "Initialize(string connectionString)"
- затем все логи, которые успел накопить Settings отправляются в Logger
Возможно ли вообще эту проблему решить используя DI?
Подозреваю, что ответ скорей всего "нет", но как в принципе эту проблему можно обойти используя встроенный DI, кроме как использовтаь тот же самый метод "Initialize"?
Как можно разорвать эту рекурсию без использования дополнительного метода инициализации логгера?
у неткора есть Iloggerfactory
Обсуждают сегодня