Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quali modifiche sono state apportate in mvvmcross 6.2.2 che potrebbero influire sulle eccezioni di riferimento nulle


Quali modifiche sono state apportate in mvvmcross 6.2.2 che potrebbero influire sulle eccezioni di riferimento nulle


Nella versione 6.2.2 MVVMCROSS, sono state apportate diverse modifiche che potrebbero influire sul verificarsi delle eccezioni di riferimento nulle (NRE). Ecco le modifiche chiave:

1. Inizializzazione del provider IOC: una modifica significativa riguarda l'inizializzazione di `mvx.iocProvider`. Prima di questa versione, se il provider IOC non fosse impostato correttamente, potrebbe portare a null di riferimento quando si costruiscono comandi come i modelli `mvxasynccommand`. Il costruttore per `mvxcommandbase` è stato aggiornato per includere un meccanismo di fallback che utilizza` mvxweakCommandHelper` se il provider IOC è nullo o non riesce a risolvere un'istanza di `imvxCommandHelper`. Questo cambiamento mira a mitigare gli NRE assicurando che i comandi possano ancora funzionare anche se il provider IOC non è completamente inizializzato [1].

2. Miglioramenti di gestione degli errori: la gestione dei potenziali riferimenti nulli è stata migliorata in varie parti del framework. Ad esempio, sono stati aggiunti controlli per garantire che determinate proprietà e metodi non tentino di dereference oggetti nulli. Ciò è particolarmente rilevante per i componenti che si basano su servizi esterni o dipendenze che potrebbero non essere sempre disponibili [1].

3. Regolazioni di test unitarie: gli utenti hanno segnalato problemi con test unitari che non riescono a causa delle eccezioni di riferimento nulle quando si utilizzano `mvxasynccommand`. La raccomandazione è stata fatta di inizializzare esplicitamente il provider IOC nei progetti di test unitari. Questa regolazione aiuta a garantire che tutte le dipendenze siano correttamente risolte prima di eseguire i test, riducendo così la probabilità di incontrare NRES durante gli scenari di test [1].

4. Correzioni di bug generali: le note di rilascio per MVVMCRoss 6.2.2 indicano che sono state affrontate un numero di bug relativi alle eccezioni di riferimento null, sebbene i dettagli specifici su ciascuna correzione non siano stati ampiamente documentati. Queste correzioni possono includere regolazioni tra vari componenti del framework in cui NRES erano stati precedentemente riportati [10].

Nel complesso, questi cambiamenti in MVVMCRoss 6.2.2 si concentrano sul miglioramento della stabilità e dell'affidabilità dell'esecuzione dei comandi e della risoluzione della dipendenza, che sono aree critiche in cui possono sorgere eccezioni di riferimento nulli. Migliorando il processo di inizializzazione e la gestione degli errori, gli sviluppatori possono aspettarsi una riduzione di tali eccezioni nelle loro applicazioni costruite con questo framework.

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