Je souhaite créer un module WPF ou Silverlight qui peut non seulement être utilisé par le bootstrappeur de Shell, mais aussi incorporé dans des applications non prismatiques. Applications PRISM.Comment créer un module WPF/Silverlight à l'aide d'un prisme, mais aussi incorporé dans des applications sans prisme
En bref, y a-t-il un moyen d'initialiser le module PRISM à partir du module plutôt que de l'initialiser à partir de Shell? L'objectif d'Ulimate est d'avoir un module PRISM WPF/Silverlight, qui peut être initialisé par des applications non-PRISM.
Mais comment le module pourrait-il obtenir un handle de UnityContainer, RegionManager ou EventAggregator à partir d'une application sans prisme ou dois-je en créer un si le handle est null? – dev999
Je ne suis pas sûr de comprendre ce que vous entendez par "obtenir un handle", mais cela dépendra de si cette autre application non-prisme utilise l'une de ces choses. Si votre module est conçu pour traiter 'IUnityContainer', par exemple, mais que l'autre application utilise Castle Windsor, vous voudrez probablement créer une nouvelle implémentation' IUnityContainer' qui délègue tous ses appels à Windsor. Même chose avec 'IRegionManager'. Alternativement, vous concevez le module avec une couche supplémentaire d'abstraction pour déléguer DI, gestion de vue, agrégation d'événements, etc., au lieu de consommer des composants de prisme. – Jay
Ce que j'ai essayé de faire est votre approche alternative que vous avez suggérée. Mais en quelque sorte initialiser IUnityContainer et IRegionManager à partir de IModule ne semble pas fonctionner pour moi. J'ai configuré le conteneur et toutes les autres choses qui sont mentionnées dans boostrapper typique, mais je ne sais pas comment ajouter dynamiquement des régions à partir du code avec le conteneur (de non-prisme) passé à module intialiser. J'ai utilisé RegionManager.SetRegionName (conteneur, "MainControlRegion"); RegionManager.UpdateRegions(); mais cela ne semble pas aider – dev999