J'essaie de partager un service de données (Entity Manager) enveloppé dans un référentiel à partir d'un ViewModel (appelé 'AVM') dans le module A vers un ViewModel (appelé 'BVM') dans le module B, et je ne peux pas obtenir ce travail. Nous utilisons PRISM/Unity 2.0Comment obtenir une référence de conteneur enfant dans View Model
Ceci est mon scénario:
Un utilisateur peut ouvrir plusieurs écrans clients (vue composite mini-shell) chacun avec un autre client (unité de travail). Nous réalisons cela en utilisant des conteneurs pour enfants. Chaque conteneur enfant résout son propre référentiel avec son propre gestionnaire d'entités (le référentiel est un singleton dans le conteneur enfant). Ceci est fait dans le module A. Le shell principal a un gestionnaire de région principal, et chaque écran Client avec son conteneur enfant crée une région étendue. Dans chaque écran client, il y a une vue 'AV' (connectée à ViewModel 'AVM') avec une sous-région (contrôle onglet) enregistrée comme 'SubRegion'. Nous créons ceci avec une 'Screen Factory'
Dans le module B, nous avons une commande client dans View 'BV' et ViewModel 'BVM'. Dans le constructeur du module B, nous obtenons le conteneur principal par injection. Dans la méthode initialize, nous résolvons le gestionnaire de région (principal) et enregistrons View 'BV' avec. Dans le constructeur de View 'BV' un ViewModel 'BVM' est injecté/créé.
Maintenant, cela fonctionne, mais ViewModel 'BVM' ne peut pas obtenir le conteneur enfant. Il obtient seulement le conteneur principal. Est-ce faisable, ou dois-je le faire d'une autre manière?
Merci, Niels
Merci pour votre réponse. Pour le moment, je crée une usine qui les lie tous ensemble. Je vais regarder dans Autofac. – user355536