Вопрос: Есть ли способ использовать Ninject для внедрения зависимостей в мои модели MVC?
Прежде всего, я новичок в MVC и DI (и stackoverflow, кстати), поэтому я хотел убедиться, что я иду по правильному пути с этой проблемой. Я гуглил ответ в течение нескольких дней, но не могу найти четкого объяснения ... Я использую C #, .NET4, MVC3, Ninject и VS2010.
Вот сценарий: у меня есть новая форма пользователя, где пользователь может установить свои логин, роли и другие данные профиля. Когда это будет отправлено, мне нужно сохранить информацию для входа в систему MembershipProvider, роли в RoleProvider и т. Д. Это становится немного сложным, потому что я использую двойных провайдеров (Active Directory / локальная база данных) в соответствии с требованиями моего проекта, так что есть некоторая логика в определении, к какому провайдеру сохранять, если пользователь уже существует, если ему разрешено самостоятельно идентифицировать любые роли и так далее.
Я чувствую, что эта логика должна быть в методе .Save () на моей модели. Однако затем мне нужно внедрить экземпляры моих провайдеров в мою модель, и Ninject, похоже, не внедряет модели (по крайней мере, не используя настройки по умолчанию, которые входят в комплект NuGet). Отсюда мой начальный вопрос.
Я могу придумать несколько альтернатив ...
- Может быть, модель - плохое место для этой логики, и я должен абстрагировать логику в сервис? Но создание сервиса только для этой функции сохранения кажется мне излишним.
- Я мог бы просто съесть наворот в моем контроллере ... но мне сказали, что "толстые" контроллеры - плохая практика.
- Полагаю, я мог бы вместо этого внедрить своих провайдеров в мой контроллер, а затем передать эти зависимости в мою модель, но это кажется немного странным.
Итак ... Есть ли способ Ninject модели или мне нужно пересмотреть, потому что я новичок в этом?