Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hvilke endringer ble gjort i MVVMCROSS 6.2.2 som kan påvirke unntak fra null referanse


Hvilke endringer ble gjort i MVVMCROSS 6.2.2 som kan påvirke unntak fra null referanse


I MVVMCROSS versjon 6.2.2 ble det gjort flere endringer som kan påvirke forekomsten av nullreferanse unntak (NRES). Her er de viktigste modifikasjonene:

1. IOC -leverandørinitialisering: En betydelig endring relaterer seg til initialiseringen av `mvx.iocprovider`. Før denne versjonen, hvis IOC -leverandøren ikke ble konfigurert riktig, kan det føre til unntak fra null referanse når du konstruerer kommandoer som `mvxasynccommand` i visningsmodeller. Konstruktøren for `mvxcommandbase` ble oppdatert for å inkludere en tilbakefallsmekanisme som bruker` mvxweakcommandhelper` hvis IOC -leverandøren er null eller ikke klarer å løse en forekomst av `imvxcommandhelper`. Denne endringen tar sikte på å dempe NRE -er ved å sikre at kommandoer fremdeles kan fungere selv om IOC -leverandøren ikke er initialisert helt [1].

2. Forbedringer av feilhåndtering: Håndtering av potensielle nullhenvisninger er forbedret i forskjellige deler av rammeverket. For eksempel er sjekker lagt til for å sikre at visse egenskaper og metoder ikke prøver å dereferanse nullobjekter. Dette er spesielt relevant for komponenter som er avhengige av eksterne tjenester eller avhengigheter som kanskje ikke alltid er tilgjengelige [1].

3. Justeringer av enhetstesting: Brukere rapporterte problemer med enhetstester som mislykkes på grunn av unntak fra nullhenvisning når de bruker `MVXASYNCCOMMAND`. Anbefalingen ble gitt for å eksplisitt initialisere IOC -leverandøren i enhetstestprosjekter. Denne justeringen hjelper til med å sikre at alle avhengigheter blir løst på riktig måte før du utfører tester, og dermed reduserer sannsynligheten for å møte NRE -er under testscenarier [1].

4. Generelle feilrettinger: Utgivelsesnotatene for MVVMCROSS 6.2.2 Angir at et antall feil relatert til unntak for nullhenvisning ble adressert, selv om spesifikke detaljer om hver løsning ikke var omfattende dokumentert. Disse rettelsene kan omfatte justeringer på tvers av forskjellige komponenter i rammene der NRE -er tidligere ble rapportert [10].

Totalt sett fokuserer disse endringene i MVVMCROSS 6.2.2 på å forbedre stabiliteten og påliteligheten av kommandoutførelse og avhengighetsoppløsning, som er kritiske områder der unntak fra null referanse kan oppstå. Ved å forbedre initialiseringsprosessen og feilhåndteringen, kan utviklere forvente en reduksjon i slike unntak i applikasjonene deres bygget med denne rammen.

Sitasjoner:
[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/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-release/