Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jaké změny byly provedeny v mvvmcross 6.2.2, které by mohly mít dopad na nulové referenční výjimky


Jaké změny byly provedeny v mvvmcross 6.2.2, které by mohly mít dopad na nulové referenční výjimky


V verzi 6.2.2 mvvmcross bylo provedeno několik změn, které by mohly ovlivnit výskyt nulových referenčních výjimek (NRES). Zde jsou klíčové úpravy:

1. Inicializace poskytovatele IOC: Jedna významná změna se týká inicializace `mvx.iocprovider`. Před touto verzí, pokud by poskytovatel IOC nebyl nastaven správně, mohlo by to vést k nulové referenční výjimky při vytváření příkazů jako `mvxasynccOmmand` v modelech. Konstruktor pro `mvxCommandBase` byl aktualizován tak, aby obsahoval mechanismus zálohy, který používá` mvxWeakCommandhelper`, pokud je poskytovatel IOC nulový nebo nedokáže vyřešit instanci `imvxCommandHelper`. Cílem této změny je zmírnit NRE tím, že zajistí, že příkazy mohou stále fungovat, i když poskytovatel IOC není plně inicializován [1].

2. Vylepšení manipulace s chybami: Manipulace s potenciálními nulovými odkazy bylo vylepšeno v různých částech rámce. Například byly přidány kontroly, aby se zajistilo, že některé vlastnosti a metody se nepokoušejí dereference nulové objekty. To je zvláště důležité pro komponenty, které se spoléhají na externí služby nebo závislosti, které nemusí být vždy k dispozici [1].

3. Úpravy testování jednotek: Uživatelé hlásili problémy s testy jednotků, které selhaly v důsledku nulových referenčních výjimek při použití `mvxasynccOmmand`. Doporučení bylo vydáno k výslovnému inicializaci poskytovatele IOC v jednotkových testovacích projektech. Tato úprava pomáhá zajistit, aby všechny závislosti byly řádně vyřešeny před provedením testů, čímž se sníží pravděpodobnost setkání s NRE během testovacích scénářů [1].

4. Opravy obecných chyb: Poznámky k uvolnění pro MVVMCross 6.2.2 ukazují, že byla řešena řada chyb souvisejících s nulovými referenčními výjimkami, ačkoli konkrétní podrobnosti o každé opravě nebyly rozsáhle zdokumentovány. Tyto opravy mohou zahrnovat úpravy napříč různými složkami rámce, kde byly dříve hlášeny NRE [10].

Celkově se tyto změny v MVVMCross 6.2.2 zaměřují na zlepšení stability a spolehlivosti provádění příkazů a rozlišení závislosti, což jsou kritickými oblastmi, kde mohou vzniknout nulové referenční výjimky. Vývojáři mohou vylepšit inicializační proces a zpracování chyb očekávat snížení takových výjimek v jejich aplikacích vytvořených s tímto rámcem.

Citace:
[1] https://stackoverflow.com/questions/53597908/mvvm-cross-null-reference-When-Unit-testování-mxvasynccommand
[2] https://www.mvvmcross.com/mvvmcross-8.0.0-release/
[3] https://pvs-sudio.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/