Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Welke wijzigingen zijn aangebracht in MVVMCross 6.2.2 die van invloed kunnen zijn op nulreferentie -uitzonderingen


Welke wijzigingen zijn aangebracht in MVVMCross 6.2.2 die van invloed kunnen zijn op nulreferentie -uitzonderingen


In MVVMCross versie 6.2.2 werden verschillende wijzigingen aangebracht die van invloed kunnen zijn op het optreden van nulreferentie -uitzonderingen (NRE's). Hier zijn de belangrijkste wijzigingen:

1. IOC -initialisatie van de provider: één significante verandering heeft betrekking op de initialisatie van de `mvx.iocprovider`. Voorafgaand aan deze versie, als de IOC -provider niet correct is ingesteld, kan dit leiden tot nulreferentie -uitzonderingen bij het construeren van opdrachten zoals `MVXASYNCCOMMAND` in weergavemodellen. De constructor voor `mvxcommandbase` werd bijgewerkt met een fallback -mechanisme dat 'mvxweakcommandhelper' gebruikt als de IOC -provider nul is of geen instantie van 'imvxcommandhelper' niet oplost. Deze wijziging is bedoeld om NRE's te verminderen door ervoor te zorgen dat opdrachten nog steeds kunnen werken, zelfs als de IOC -provider niet volledig is geïnitialiseerd [1].

2. Foutafhandeling Verbeteringen: de behandeling van potentiële nulreferenties is verbeterd in verschillende delen van het raamwerk. Er zijn bijvoorbeeld controles toegevoegd om ervoor te zorgen dat bepaalde eigenschappen en methoden niet proberen nulobjecten te dereferentie. Dit is met name relevant voor componenten die afhankelijk zijn van externe diensten of afhankelijkheden die mogelijk niet altijd beschikbaar zijn [1].

3. Aanpassingen van eenheidstests: gebruikers hebben problemen gerapporteerd met eenheidstests die mislukten als gevolg van nulreferentie -uitzonderingen bij gebruik van `mvxasynccommand`. De aanbeveling is gedaan om de IOC -provider expliciet te initialiseren in eenheidstestprojecten. Deze aanpassing helpt ervoor te zorgen dat alle afhankelijkheden correct zijn opgelost voordat ze tests uitvoeren, waardoor de waarschijnlijkheid van het tegenkomen van NRE's tijdens testscenario's wordt verminderd [1].

4. Algemene bugfixes: de release -opmerkingen voor MVVMCross 6.2.2 geven aan dat een aantal bugs met betrekking tot nulreferentie -uitzonderingen werden aangepakt, hoewel specifieke details over elke fix niet uitgebreid werden gedocumenteerd. Deze oplossingen kunnen aanpassingen omvatten over verschillende componenten van het raamwerk waar eerder NRE's werden gemeld [10].

Over het algemeen richten deze veranderingen in MVVMCross 6.2.2 zich op het verbeteren van de stabiliteit en betrouwbaarheid van de opdrachtuitvoering en afhankelijkheidsresolutie, die kritieke gebieden zijn waar nulreferentie -uitzonderingen kunnen ontstaan. Door het initialisatieproces en foutafhandeling te verbeteren, kunnen ontwikkelaars een vermindering van dergelijke uitzonderingen verwachten in hun toepassingen die met dit kader zijn gebouwd.

Citaten:
[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/