Ich verwende Prism mit Unity-Container für meine Xamarin Forms-Anwendung.Abmelden View and ViewModel in Prism.Unity.Forms
, wo ich bin Registrierung meine Seiten wie diese
Container.RegisterTypeForNavigation<ViewType,ViewModelType>();
manchmal
Container.RegisterTypeForNavigation<ViewType>();
Jetzt möchte ich zusammen mit ihren Ansichtsmodell einige der registrierten Seiten deregistrieren.
So etwas wie
Container.UnRegisterTypeForNavigation<ViewType>();
aber kann nicht einen Weg für sie herauszufinden. brauche Hilfe.
Bisher habe ich dies versucht haben
ContainerRegistration registrationContainer = Container.Registrations.FirstOrDefault(obj => obj.MappedToType == GetPageType(pageType));
if (registrationContainer?.LifetimeManager!=null)
{
registrationContainer.LifetimeManager.RemoveValue();
}
ohne Glück.
Grund, warum ich deregistrieren wollen ...
Ich habe zwei Ansichten
Project.Namespace1.ViewA
Project.Namespace2.ViewA
Jetzt möchte ich Project.Namespace1.ViewA
öffnen, ist in einigen Fällen, und Project.Namespace2.ViewA
in anderen Fällen.
Dies kann
NavigationService.NavigateAsync("ViewA");
Es navigiert als
erfolgen Ansicht in Unity Container registriert dauern. Aus diesem Grund möchte ich die vorherige Ansicht abmelden, bevor ich eine neue Ansicht registriere.
Warum möchten Sie dies tun? Das Aufheben der Registrierung einer Ansicht verbirgt sie nicht, und das Aufheben der Registrierung eines Ansichtsmodells wird auch nichts bewirken. – Haukinger
Es gibt keine unregistrierte Methode für Unity. Sie können sich diese Antwort für die Löschung von Registrierungen ansehen: https://stackoverflow.com/a/44361488/114664. Allerdings stimme ich @Haukinger zu, dass dies wahrscheinlich keine gute Idee ist. Was versuchst du zu erreichen? –
Ich habe meine Frage mit Grund hinter dem Aufheben der Registrierung aktualisiert. hoffe das hilft. – Yogesh