Quand j'ai commencé avec Windsor, je pensais que DI serait simple. Maintenant, cela me cause de plus en plus de confusion.Cycle de vie approprié pour les classes de dépôt utilisant Castle Windsor
Un dépôt me frappe en tant que classe avec un cycle de vie singleton. Je devrais avoir une seule instance d'un FooRepository pour charger et enregistrer Foos dans la base de données pendant la durée de vie de l'application. Cependant, chaque référentiel contient une référence à un UnitOfWork, qui effectue la vérification sale, travaille avec la base de données, etc. Le UnitOfWork a un cycle de vie de PerWebRequest - cela n'a aucun sens que UnitOfWork soit un singleton, comme une instance singleton pourrait (par exemple) vider les modifications apportées par plusieurs sessions utilisateur en même temps. Alors j'ai un FooRepository singleton qui contient une référence à un UnitOfWork, qui à la fin de la session est disposé! Je ne suis même pas sûr de l'effet que cela aurait sur le comportement du dépôt, mais ça ne sonne pas bien. Peut-on expliquer, en anglais simple (d'accord peut-être avec du code), la manière appropriée de gérer le cycle de vie des classes Repository et UnitOfWork dans une application Web?
Transitoire? Ah, intéressant. Mais probablement utiliser un référentiel PerWebRequest avec un PerWebRequest UoW (comme je le fais actuellement) est également bien? (Cela semble fonctionner pour moi, de toute façon.) – David
Que voulez-vous dire par apatride? Voulez-vous dire qu'ils ne contiennent pas de référence à un UoW? – David
Oh, modification suggérée - 'le composant ne devrait pas dépendre des autres composants qu'il va survivre'. Mais je sais ce que tu voulais dire, merci! – David