2010-10-07 10 views
0

Est-il incorrect d'utiliser UnityContainer dans une application pour accéder à des références à des objets provenant de différentes parties de l'application (mais le même assemblage)?Utilisation de UnityContainer et meilleures pratiques

L'application (WPF) a plusieurs régions qui doivent accéder les uns aux autres et j'ai utilisé UnityContainer pour le faire. Par exemple, la région "principale" (qui est une zone de dessin) a un présentateur derrière elle, qui gère toute la logique métier, et j'ai enregistré cette instance de présentateur dans le conteneur, et dans d'autres parties de l'application où j'ai besoin pour y accéder je contrôle cette région, j'y accède via UnityContainer.

Vous ne savez pas si c'est une bonne ou une mauvaise pratique.

Répondre

0

Non, en fait, c'est ce que son but est. Il existe une bibliothèque appelée ServiceLocator qui fonctionne bien et qui vous permet de désactiver les conteneurs IoC, de trouver un moyen de rechercher le conteneur, etc. Je trouve cela exagéré car je n'ai jamais eu à échanger de conteneurs. statique "usine" pour obtenir le conteneur est généralement assez bon. Habituellement, seule la classe de niveau supérieur doit l'appeler et elle est responsable de l'assemblage de toutes les dépendances.

+0

<< Habituellement, seule la classe de niveau supérieur doit l'appeler et elle est responsable de l'assemblage de toutes les dépendances >> Eh bien, c'était dans mon esprit, parce que je n'utilise pas le conteneur seulement de la classe de premier niveau (initialiseur de module, parce que j'utilise Prism), mais aussi d'autres classes dans le même module accèdent l'un à l'autre. Par exemple, j'ai la plupart des commandes importantes dans une classe, qui est référencée par conteneur de la plupart des présentateurs. – Teodor