I MVVMCROSS version 6.2.2 blev der foretaget adskillige ændringer, der kunne påvirke forekomsten af nulreferencesundtagelser (NRE'er). Her er de vigtigste ændringer:
1. IOC -leverandørinitialisering: En væsentlig ændring vedrører initialiseringen af `MVX.IOCPROVIDER '. Før denne version, hvis IOC -udbyderen ikke blev oprettet korrekt, kunne det føre til nulreferencesceptions, når man konstruerer kommandoer som `MVXASYNCCOMMAND 'i visningsmodeller. Konstruktøren til `MVXCommandBase` blev opdateret til at omfatte en Fallback -mekanisme, der bruger` MVXWeakCommandHelper ', hvis IOC -udbyderen er nul eller undlader at løse en forekomst af `IMVXCommandHelper'. Denne ændring sigter mod at afbøde NRE'er ved at sikre, at kommandoer stadig kan fungere, selvom IOC -udbyderen ikke er fuldt initialiseret [1].
2. Fejlhåndteringsforbedringer: Håndteringen af potentielle nullreferencer er blevet forbedret i forskellige dele af rammen. F.eks. Er der tilføjet kontroller for at sikre, at visse egenskaber og metoder ikke forsøger at derferens null -objekter. Dette er især relevant for komponenter, der er afhængige af eksterne tjenester eller afhængigheder, der muligvis ikke altid er tilgængelige [1].
3. enhedstestjusteringer: Brugere rapporterede problemer med enhedstest, der mislykkedes på grund af nulreferencestemmelser, når de brugte `MVXASYNCCOMMAND '. Anbefalingen blev fremsat om eksplicit at initialisere IOC -udbyderen i enhedstestprojekter. Denne justering hjælper med at sikre, at alle afhængigheder er korrekt løst, før de udføres test, og derved reducerer sandsynligheden for at møde NRE'er under testscenarier [1].
4. Generelle fejlrettelser: Frigivelsesnotaterne for MVVMCROSS 6.2.2 viser, at et antal bugs relateret til nulreferencesundtagelser blev behandlet, skønt der ikke blev dokumenteret specifikke detaljer om hver løsning. Disse rettelser kan omfatte justeringer på tværs af forskellige komponenter i rammerne, hvor NRE'er tidligere blev rapporteret [10].
Generelt fokuserer disse ændringer i MVVMCROSS 6.2.2 på forbedring af stabiliteten og pålideligheden af kommandoudførelse og afhængighedsopløsning, som er kritiske områder, hvor nulreferencesundtagelser kan opstå. Ved at forbedre initialiseringsprocessen og fejlhåndtering kan udviklere forvente en reduktion i sådanne undtagelser i deres applikationer bygget med denne ramme.
Citater:)
[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/