Ich versuche Prism 6 UWP Application zu entwickeln. Mein aktuelles Problem ist, dass ich alle Objekte registrieren möchte, die in Application mit Unity Dependency-Injektionscontainern verwendet werden. Aber so viele UI-Objekte werden von der Infrastruktur erstellt (Activator.CreateInstance (type)) und keine Möglichkeit, ihre Erstellung durch Dependency Conitiner auszulösen.Ich wäre in Ordnung, auch wenn ich erstellte Objekte mit DI conatiner registrieren. Ich habe Github Beispielanwendung AdventureWorks.Shopper in Prism-Beispielen verwiesen. Hier sah ich, dass Ansichten von Infrastruktur erstellt werden, aber einige andere Objekte werden von Dependency injection conatiner erstellt.Einheit Container Verwendung in UWP
Gibt es eine Möglichkeit, alle Objekte in Anwendungen zu erhalten und sie bei DI conatiner zu registrieren?
Gibt es eine Möglichkeit, alle Objekte in Anwendungen zu erhalten und sie mit DI-Container zu registrieren oder die gesamte Erstellung über DI Conatiner auszulösen?
Möchten Sie eine Objektmenge über den Abhängigkeitscontainer registrieren, in den Sie reflektieren können? Können Sie über die Typen in den geladenen Assemblys nachdenken und sie in den DI-Container laden, wobei die Instanziierungsmethode Activator.CreateInstance ist? – QiMata
Wenn ich dies tue, erhalte ich doppelte Objekte. Einige UI-Objekte werden von framework.So tatsächlichen UI angezeigt wird mit diesem Objekt. Aber mein DI-Container hat eine andere Instanz der gleichen Klasse –
Ein Weg, fanden wir, können wir Container zugreifen wie dieser unityContainer = (UnityContainer) ((Prism.Unity.Windows.PrismUnityApplication) Application.Current) .Container ;. Objekte, die von Framework erstellt werden, können mit Einheit registriert werden, indem Registrierungen in Konstruktor api Beispiel unityContainer.RegisterInstance (this); –