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