V MVVMcross različici 6.2.2 je bilo izvedenih več sprememb, ki bi lahko vplivale na pojav ničelnih referenčnih izjem (NRES). Tu so ključne spremembe:
1. Inicializacija ponudnika IOC: Ena pomembna sprememba se nanaša na inicializacijo `mvx.iocprovider`. Pred to različico, če ponudnik MOK ne bi bil pravilno nastavljen, bi lahko pri oblikovanju ukazov, kot je `mvxasyncCommand`, v modelih ogledov. Konstruktor za `mvxCommandBase` je bil posodobljen tako, da vključuje mehanizem za odhod, ki uporablja` mvxweakCommandhelper`, če je ponudnik MOK ničen ali ne reši primera `imvxCommandhelper`. Cilj te spremembe je ublažiti NRES z zagotavljanjem, da lahko ukazi še vedno delujejo, tudi če ponudnik MOK ni v celoti inicializiran [1].
2. Izboljšave napak: Ravnanje s potencialnimi ničelnimi referencami je bilo izboljšano v različnih delih okvira. Na primer, dodani so bili čeki, da se zagotovi, da nekatere lastnosti in metode ne poskušajo odstraniti ničelnih predmetov. To je še posebej pomembno za komponente, ki se zanašajo na zunanje storitve ali odvisnosti, ki morda niso vedno na voljo [1].
3. Prilagoditve testiranja enot: Uporabniki so poročali o težavah z enotnimi testi, ki niso uspele zaradi ničelnih referenčnih izjem pri uporabi `mvxasyncCommand`. Priporočilo je bilo dano za izrecno inicializacijo ponudnika IOC v testnih projektih enote. Ta prilagoditev pomaga zagotoviti, da se vse odvisnosti pravilno rešijo pred izvedbo testov in s tem zmanjšajo verjetnost, da se med testiranjem naleti na NRES [1].
4. Splošni popravki napak: Opombe o izdaji za MVVMcross 6.2.2 kažejo, da so bile obravnavane številne napake, povezane z ničelnimi referenčnimi izjemami, čeprav posebne podrobnosti o vsakem popravku niso bile obsežno dokumentirane. Ti popravki lahko vključujejo prilagoditve v različnih komponentah okvira, kjer so bile prej poročane NRE [10].
Na splošno se te spremembe v MVVMcross 6.2.2 Osredotočijo na izboljšanje stabilnosti in zanesljivosti izvajanja ukazov in ločljivosti odvisnosti, ki so kritična področja, na katerih se lahko pojavijo NULL referenčne izjeme. Z izboljšanjem postopka inicializacije in ravnanja z napakami lahko razvijalci pričakujejo zmanjšanje takšnih izjem v svojih aplikacijah, zgrajenih s tem okvirom.
Navedbe:[1] https://stackoverflow.com/questions/53597908/mvvm-cross-null-references-when-unit-testing-mxvasyncCommand
[2] https://www.mvvmcross.com/mvvmcross-8.0.0-release/
[3] https://pvs-studio.com/sl/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/isissue/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-release/