„MVVMCross 6.2.2“ versijoje buvo padaryta keletas pakeitimų, kurie galėtų turėti įtakos nulinės atskaitos išimčių (NRES) atsiradimui. Čia yra pagrindinės modifikacijos:
1. TOK teikėjo inicijavimas: vienas reikšmingas pokytis yra susijęs su „mvx.iocprovider“ inicijavimu. Prieš šią versiją, jei TOK teikėjas nebuvo tinkamai nustatytas, tai gali sukelti NULL nuorodų išimtis, kai konstruojant tokias komandas kaip „MvxAsynccommand“ vaizdų modeliuose. „MVXCommandBase“ konstruktorius buvo atnaujintas, įtraukiant atsarginį mechanizmą, kuriame naudojamas „mvxweakcommandhelper“, jei IOC teikėjas yra nulinis arba neišsprendžia „imvxCommandHelper“ egzemplioriaus. Šiuo pakeitimu siekiama sušvelninti NRE, užtikrinant, kad komandos vis tiek gali veikti, net jei IOC teikėjas nėra visiškai inicializuotas [1].
2. Klaidų tvarkymo patobulinimai: Įvairiose sistemos dalyse buvo patobulinta potencialių nulinių nuorodų tvarkymas. Pavyzdžiui, buvo pridėti čekiai, siekiant įsitikinti, kad tam tikros savybės ir metodai nebando panaikinti niekinių objektų. Tai ypač svarbu komponentams, kurie priklauso nuo išorinių paslaugų ar priklausomybių, kurios ne visada gali būti prieinamos [1].
3. Vienetų testavimo koregavimas: Vartotojai pranešė apie problemas, susijusias su vienetų testais, kurie nesugeba dėl nulinių nuorodų išimčių, kai naudojami „MvxAsynccommand“. Buvo pateikta rekomendacija aiškiai inicijuoti TOK teikėją vienetų bandymų projektuose. Šis koregavimas padeda užtikrinti, kad prieš vykdant testus būtų tinkamai išspręstos visos priklausomybės, taip sumažinant tikimybę susidurti su NRE bandymo scenarijų metu [1].
4. Bendrieji klaidų pataisymai: „MVVMCross 6.2.2“ išleidimo pastabos rodo, kad buvo nagrinėjamos nemažai klaidų, susijusių su NULL atskaitos išimtimis, nors konkrečios informacijos apie kiekvieną taisymą nebuvo išsamiai aprašyta. Šie pataisymai gali apimti įvairių sistemos komponentų pakeitimus, kuriuose anksčiau buvo pranešta NRE [10].
Apskritai, šie MVVMCROSS 6.2.2 pokyčiai sutelkia dėmesį į komandų vykdymo stabilumo ir patikimumo gerinimą ir priklausomybės skiriamąją gerinimą, tai yra kritinės sritys, kuriose gali atsirasti niekinės nuorodos išimtys. Patobulindami inicijavimo procesą ir tvarkant klaidas, kūrėjai gali tikėtis, kad tokios išimtys sumažins savo programas, sukurtas naudojant šią sistemą.
Citatos:[1] https://stackoverflow.com/questions/53597908/mvvm-cross-ant-references-when-unit-testting-mxvasynccommand
[2] https://www.mvvmcross.com/mvvmcross-8.0.0-release/
[3] https://pvs-sutio.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/