In MVVMcross Version 6.2.2 wurden mehrere Änderungen vorgenommen, die sich auf das Auftreten von Null -Referenzausnahmen (NRES) auswirken konnten. Hier sind die wichtigsten Modifikationen:
1. IOC -Anbieter -Initialisierung: Eine signifikante Änderung bezieht sich auf die Initialisierung des `mvx.iocprovider`. Wenn der IOC -Anbieter vor dieser Version nicht korrekt eingerichtet wurde, könnte dies zu Null -Referenz -Ausnahmen führen, wenn Befehle wie "mvxasynccommand" in View -Modellen erstellt werden. Der Konstruktor für "mvxcommandbase" wurde aktualisiert, um einen Fallback -Mechanismus zu enthalten, der "mvxWeakcommandhelper" verwendet, wenn der IOC -Anbieter null ist oder eine Instanz von "ImvxCommandhelper" nicht auflöst. Diese Änderung zielt darauf ab, NRES zu mildern, indem sichergestellt wird, dass Befehle noch funktionieren können, auch wenn der IOC -Anbieter nicht vollständig initialisiert ist [1].
2. Verbesserungen der Fehlerhandhabung: Der Umgang mit potenziellen Nullreferenzen wurde in verschiedenen Teilen des Rahmens verbessert. Beispielsweise wurden Überprüfungen hinzugefügt, um sicherzustellen, dass bestimmte Eigenschaften und Methoden nicht versuchen, Null -Objekte zu erfernen. Dies ist besonders relevant für Komponenten, die sich auf externe Dienste oder Abhängigkeiten verlassen, die möglicherweise nicht immer verfügbar sind [1].
3.. Einstellungsanpassungen in Einheiten: Benutzer berichteten über Probleme, bei denen Unit -Tests aufgrund von Null -Referenz -Ausnahmen bei Verwendung von `mvxasynccommand` fehlschlagen. Die Empfehlung wurde abgegeben, um den IOC -Anbieter in Unit -Testprojekten explizit zu initialisieren. Diese Anpassung hilft sicherzustellen, dass alle Abhängigkeiten vor der Ausführung von Tests ordnungsgemäß aufgelöst werden, wodurch die Wahrscheinlichkeit verringert wird, dass NREs während der Testszenarien auf NRES stoßen [1].
4. Allgemeine Fehlerbehebungen: Die Versionshinweise für MVVMCross 6.2.2 zeigen, dass eine Reihe von Fehler, die sich auf Null -Referenz -Ausnahmen beziehen, angesprochen wurden, obwohl spezifische Details zu jedem Fix nicht umfassend dokumentiert wurden. Diese Korrekturen können Anpassungen in verschiedenen Komponenten des Gerüsts umfassen, in denen zuvor NRES gemeldet wurden [10].
Insgesamt konzentrieren sich diese Änderungen in MVVMCross 6.2.2 auf die Verbesserung der Stabilität und Zuverlässigkeit der Befehlsausführung und Abhängigkeitslösung, die kritische Bereiche sind, in denen Null -Referenz -Ausnahmen auftreten können. Durch die Verbesserung des Initialisierungsprozesses und der Fehlerbehandlung können Entwickler eine Verringerung solcher Ausnahmen in ihren Anwendungen erwarten, die mit diesem Rahmen erstellt wurden.
Zitate:[1] https://stackoverflow.com/questions/53597908/mvvm-cross-null-references-when-unit-testing-mxvasynccommand
[2] https://www.mvmcross.com/mvmcross-8.0.0-release/
[3] https://pvs-studio.com/en/blog/posts/csharp/1049/
[4] https://www.youtube.com/watch?v=uzsdzok4un8
[5] https://github.com/mvvmcross/mvmcross/releases
[6] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[7] https://github.com/mvvmcross/mvmcross/issues/3310
[8] https://github.com/mvvmcross/mvmcross/blob/develop/changelog.md
[9] https://www.reddit.com/r/dotnetmau/comments/1bpfvky/cannot_pair_to_mac_null_reference_exception/
[10] https://www.mvvmcross.com/mvmcross-6.2.0-release/