Я пытаюсь использовать простой Инжектор в проект, который имеет следующую архитектуру:Простой Injector в своем собственном проекте
- DAL слой (владеет хранилищами)
- BLL слой (владеет услуги, переговоры с хранилищами),
- Уровень MVC (переговоры с службами в слое BLL).
, когда речь идет о регистрации в контейнере классы и интерфейсы, I`m сталкиваются с проблемой, просто Injector нуждается во мне, чтобы зарегистрировать хранилище с его интерфейсом (как мои классы в слое службы принимает репозиторий их конструктор)
Итак, на самом деле простой инжектор заставляет меня добавлять ссылки на мой слой DAL в моем MVC-слое, который мне очень нравится избегать.
Мой вопрос: возможно ли/сделать внешний проект, который будет содержать только простой инжектор, и этот проект будет иметь ссылку на все другие проекты, и таким образом я смогу зарегистрировать то, что хочу, и все еще держать моя абстракция проекта?
или есть какой-либо другой простой способ решить эту проблему?
возможно дубликат [? IoC/DI - Почему я должен ссылаться на все слои/сборки в приложении ввода] (http://stackoverflow.com/questions/9501604/ioc-di-why-do-i-have-to-reference-all-layers-assemblies-in-entry-application) – Steven
да, спасибо. хотя я до сих пор не полностью его понимаю, поэтому мое приложение MVC (которое имеет Root - global.asax) должно ссылаться на все другие проекты? и на диаграмме, полученной в ответном ответе, все остальные проекты не ссылаются ни на какой другой проект. как я не мог ссылаться на мой слой BLL на мой слой DAL? Мне нужно это знать, какой тип я получаю в своем конструкторе. или я должен поместить все интерфейсы в общий проект? Еще раз спасибо. – jony89
Вы прочитали второй ответ (который мой)? Корень композиции должен ссылаться на * все * другие проекты, неявно или явно; нет никакого способа обойти это, это хорошо, и вы не должны пытаться предотвратить это. Поскольку вы решили поместить Root Composition и ваш уровень презентации в одну и ту же сборку, эта сборка также ссылается на все другие проекты. Это, однако, не означает, что ваш слой * презентации * ссылается на все остальные слои. – Steven