1

J'ai une classe model qui a besoin d'accéder à ma classe repository (utilisée pour l'accès DB).Comment utiliser Windsor pour injecter une dépendance dans un modèle ASP.NET MVC?

J'ai créé une interface pour mon dépôt et j'ai configuré Castle Windsor pour injecter la classe IRepository appropriée dans mes contrôleurs via une ControllerFactory personnalisée.

J'ai un peu plus de mal à comprendre comment faire la même chose avec mon modèle. Est-ce que quelqu'un connaît un moyen d'utiliser Windsor pour injecter une dépendance dans un modèle MVC? En passant, la raison pour laquelle j'ai besoin de Windsor pour gérer cela est que MVC instancie automatiquement une instance de mon modèle lorsque les données sont publiées sur mon contrôleur, et cette instanciation automatique ne me permet pas de passer des paramètres constructeurs.

Répondre

1

Vous voudrez peut-être jeter un coup d'œil à MVC Contrib's Castle Binder.

Cependant, personnellement, je pense que les modèles devraient être des simples POCO, ou des conteneurs de données stupides, sans aucune DI. Dans cette approche, il incombe au contrôleur de lire, de manipuler et de conserver les données.

+0

Que se passe-t-il lorsque, par exemple, un modèle contient une liste SelectList d'éléments qui doivent être extraits de la base de données? –

+1

IMO, il ne devrait pas. Il doit contenir un IList (ou similaire), et il est de la responsabilité du contrôleur de remplir cette liste d'une manière ou d'une autre. –

Questions connexes