Я использую Ninject в качестве контейнера IoC для своего приложения ASP.NET MVC. То, что я сейчас делаю, у меня есть следующие слои в моем проекте:Ninject - определить отображение в файле web.config
- Основной
- Фабрика
- Инфраструктура
- Logic
- UI (ASP.NET MVC)
Инфраструктура, логика и пользовательский интерфейс имеют ссылки на Core и Factory имеют ссылки на все.
Когда приложение ASP.NET загружается, я вызываю метод на моей фабрике и передаю ему значение перечисления, которое сообщает ему, кто его запускает (пользовательский интерфейс или любой другой эквивалентный уровень пользовательского интерфейса), например, я бы хотел, чтобы пользовательский интерфейс работал против Классы кэша и проект Backoffice, чтобы пропустить реализацию кэша интерфейса и работать непосредственно с базой данных). Затем метод проверяет перечисление и делает соответствующее преобразование в Ninject.
Прежде всего, что я здесь делаю, это хорошая практика? каждый слой не знает слой рядом с ним, и поэтому слабо связан. Но, с другой стороны, завод имеет ссылки на все слои, что делает его плотно связанным.
Second, мои сопоставления жестко закодированы в моем слое Factory - то, что я хотел бы иметь, это сопоставления в файле .config (web.config) - это возможно?
Благодаря