Я создаю систему веб-CMS на основе узлов в asp.net mvc.
Прочитав несколько книг по внедрению зависимостей, я разделил свое решение на несколько проектов и использовал абстракции (абстрактные классы и интерфейсы).
Я не могу понять, как решить следующий тип кода в моем веб-проекте:
myDomainObjectNode.GetChildNodes<SomeSubNodeClass>();
Я мог бы сделать это, если бы у объекта домена была ссылка на INodeRepository.но это означало бы, что я должен носить эту зависимость во всех объектах домена, что создает трудности, особенно когда приходится создавать новые экземпляры.Является ли наличие зависимостей (в основном репозиториев) в вашем доменном объекте плохой вещью?
Моя другая идея - добиться этого с помощью методов расширения.Однако методы расширения являются статическими для статического класса, который сам не может быть создан с использованием IoC.Я мог бы решить это, используя Singleton для INodeRepository и установив его в IoC.
Это не похоже на элегантное решение ... у вас есть другие идеи или предложения?
Спасибо!