Az MVVMCross 6.2.2 verziójában számos változtatást hajtottak végre, amelyek befolyásolhatják a null referencia -kivételek (NRES) előfordulását. Itt vannak a legfontosabb módosítások:
1. NOB szolgáltató inicializálása: Az egyik jelentős változás az `mvx.iocprovider 'inicializálásához kapcsolódik. Ezt a verziót megelőzően, ha a NOB szolgáltatót nem állítják be megfelelően, akkor null referencia -kivételekhez vezethet, amikor olyan parancsokat készít, mint például a „MvxAsyncCommand”, a nézetben. A „mvxCommandBase” konstruktorát frissítették, hogy olyan tartalék mechanizmust tartalmazzon, amely az „mvxweakcommandhelper” -et használja, ha a NOB szolgáltató nulla, vagy nem oldja meg az `imvxCommandhelper 'példányát. Ennek a változásnak az a célja, hogy enyhítse az NRE -ket azáltal, hogy biztosítja, hogy a parancsok továbbra is működjenek, még akkor is, ha a NOB szolgáltatót nem teljes mértékben inicializálják [1].
2. Például ellenőrzéseket adtak hozzá annak biztosítása érdekében, hogy bizonyos tulajdonságok és módszerek ne próbálják megsemmisíteni a null objektumokat. Ez különösen releváns az olyan alkatrészeknél, amelyek külső szolgáltatásokra vagy függőségekre támaszkodnak, amelyek nem mindig állnak rendelkezésre [1].
3. egységteszt -kiigazítás: A felhasználók olyan egységtesztekkel számoltak be, amelyekben a null referencia -kivételek miatt meghibásodtak a „mvxasyncmommand” használatakor. Az ajánlást a NOB szolgáltató kifejezett inicializálására tették az egységteszt -projektekben. Ez a kiigazítás elősegíti az összes függőség megfelelő megoldását a tesztek végrehajtása előtt, ezáltal csökkentve a NRE -kkel való találkozás valószínűségét a tesztelési forgatókönyvek során [1].
4. Általános hibajavítások: Az MVVMCross 6.2.2 kiadási megjegyzései azt jelzik, hogy a null referencia -kivételekkel kapcsolatos számos hibát megválaszoltak, bár az egyes javítások konkrét részleteit nem dokumentálták széles körben. Ezek a javítások magukban foglalhatják a keret különböző alkotóelemeinek kiigazítását, ahol korábban beszámoltak az NRES -ről [10].
Összességében az MVVMCROSS 6.2.2 ezek a változásai a parancs végrehajtásának és a függőségi megoldás stabilitásának és megbízhatóságának javítására összpontosítanak, amelyek kritikus területek, ahol null referencia -kivételek merülhetnek fel. Az inicializálási folyamat és a hibakezelés javításával a fejlesztők az ilyen kivételek csökkenését várhatják el alkalmazásaikban, amelyeket ezzel a keretrendszerrel építettek.
Idézetek:[1] https://stackoverflow.com/questions/53597908/mvvm-cross-null-references-when-unit-testing-mxvasyncmommand
[2] https://www.mvvmcross.com/mvvmcross-8.0.0-rease/
[3] https://pvs-studio.com/en/blog/posts/csharp/1049/
[4] https://www.youtube.com/watch?v=UZSDZOK4UN8
[5] https://github.com/mvvmcross/mvvmcross/releases
[6] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[7] https://github.com/mvvmcross/mvvmcross/issues/3310
[8] https://github.com/mvvmcross/mvvmcross/blob/develop/changelog.md
[9] https://www.reddit.com/r/dotnetmaui/comments/1bpfvky/cannot_pair_to_mac_null_reference_exception/
[10] https://www.mvvmcross.com/mvvmcross-6.2.0-rease/