Для нового проекта я использую контейнер Windsor для обеспечения Dependency Injection (DI).Я должен обеспечить мне слабую связь и высокую тестируемость.Так как я новичок в области внедрения зависимостей, у меня возникают проблемы с умением правильно его использовать.
Это то, что я выучил для статей и поиска в Google: у вас должен быть один момент запуска контейнера, которыйсоздается при запуске.Зависимости объектов должны учитываться при создании объекта.Ну, пока все хорошо.
Теперь для моей ситуации.В моем слое данных, который находится в другом проекте, мои классы данных полагаются на некоторую форму ведения журнала, которая устанавливается внутри конструктора.Но поскольку он находится внутри другого проекта, он не может получить доступ к контейнеру.
Единственное решение, которое приходит на ум, - это создание одноэлементного фабричного класса, в который вводится контейнер при запуске.Фабрика-одиночка поддерживает экземпляр контейнера и создает проекты экземпляров класса уровня данных, как это делает традиционный класс-фабрика, вместо этого теперь с DI.
Хотя это может показаться хорошим решением, чтение некоторых статей создает у меня ощущение, будто я упускаю что-то важное, но есть и другие варианты для достижения желаемого результата (мои классы слоя данных, созданные с помощью DI).Так что я мог бы использовать руководство.Примеры исходного кода были бы замечательными, но объяснения или ссылки на другие ресурсы также очень помогли бы мне.