Ich möchte ein WPF- oder Silverlight-Modul erstellen, das nicht nur von Shells Bootstrapper verwendet werden kann, sondern auch in nicht-prismatische Anwendungen eingebettet werden kann. PRISM-Anwendungen.Wie man WPF/Silverlight-Module mit Prismen erstellt, aber auch in Nicht-Prismen-Anwendungen eingebettet werden kann
Kurz gesagt gibt es eine Möglichkeit, PRISM-Modul von Modul selbst initialisiert werden, anstatt von Shell initialisieren?
Ultimate Ziel ist das WPF/Silverlight PRISM-Modul, das von Nicht-PRISM-Anwendungen initialisiert werden kann.
Aber wie würde Modul ein Handle von UnityContainer, RegionManager oder EventAggregator von Nicht-Prism-Anwendung bekommen oder muss ich eine erstellen, wenn das Handle Null ist? – dev999
Ich bin mir nicht sicher, ob ich verstehe, was Sie mit "Griff" meinen, aber es hängt davon ab, ob diese andere, nicht prismatische Anwendung eines dieser Dinge verwendet. Wenn Ihr Modul zum Beispiel mit "IUnityContainer" arbeiten soll, aber die andere Anwendung Castle Windsor verwendet, möchten Sie wahrscheinlich eine neue "IUnityContainer" -Implementierung erstellen, die alle Aufrufe an Windsor delegiert. Gleiches mit "IRegionManager". Alternativ entwerfen Sie das Modul mit einer zusätzlichen Abstraktionsebene, um DI, Ansichtsverwaltung, Ereignisaggregation usw. zu delegieren, anstatt Prism-Komponenten zu verbrauchen. – Jay
Was ich versucht habe, ist Ihr alternativer Ansatz, den Sie vorgeschlagen haben. Aber irgendwie Initialisierung von IUnityContainer und IRegionManager aus IModule scheint nicht für mich zu arbeiten. Ich habe den Container und alle anderen Dinge konfiguriert, die in einem typischen Boograpper erwähnt werden, aber ich weiß nicht, wie man dynamisch Regionen aus dem Code mit dem Container (ohne Prisma) hinzufügt, der an den Modul-Initialisierer übergeben wurde. Ich habe RegionManager.SetRegionName (Container, "MainControlRegion"); RegionManager.UpdateRegions(); aber das scheint nicht zu helfen – dev999