Dire que j'ai les 4 .net ensembles suivants:Ne pas comprendre où créer IoC conteneurs dans l'architecture du système
- Winforms UI
- affaires Logic
- SQL Server Data Access (mise en œuvre d'un IRepository)
- Interfaces communes (définition d'IRepository, etc.)
Ma logique métier (2) effectue des appels à la couche d'accès aux données (3) via IRepository (défini en 4) en utilisant l'injection de dépendance du constructeur. Cependant, lorsque je crée un objet métier, je dois passer dans un dépôt réel. Je le fais en ayant une classe singleton dans ma couche de logique métier retourne l'objet concret en cours d'implémentation implémentant IRepository. J'en arrive à la conclusion que c'est une mauvaise chose, car ma couche logique métier doit maintenant faire référence à 3 et 4.
Je pense que j'ai besoin d'un conteneur IoC mais la question est de savoir où je le crée/le place comme il semble que partout où je crée cela (1 - UI)? devra également contenir une référence à 3 (SQL Server Data Access). Ne suis-je pas en train de déplacer le problème plutôt que de réaliser le découplage réel? Est-ce que je crée le conteneur IoC dans l'interface utilisateur? Ou exposer à travers un autre nouvel assemblage.
(je suis en utilisant C#, .Net 3.5 et AutoFac)
Merci.
on pourrait argumenter qu'ayant 10 projets ou plus, où le conteneur est créé est le moindre de vos problèmes. –