Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ce modificări au fost făcute în MVVMCross 6.2.2 care ar putea afecta excepțiile de referință nule


Ce modificări au fost făcute în MVVMCross 6.2.2 care ar putea afecta excepțiile de referință nule


În versiunea 6.2.2 MVVMcross, au fost făcute mai multe modificări care ar putea afecta apariția excepțiilor de referință nulă (NRES). Iată modificările cheie:

1. Inițializarea furnizorului de IOC: O modificare semnificativă se referă la inițializarea `mvx.iocprovider`. Înainte de această versiune, dacă furnizorul IOC nu a fost configurat corect, acesta ar putea duce la excepții de referință nule atunci când construiți comenzi precum `mvxasynccommand` în modelele de vizualizare. Constructorul pentru `mvxcommandbase` a fost actualizat pentru a include un mecanism de revenire care folosește` mvxweakcommandhelper` dacă furnizorul IOC este nul sau nu reușește să rezolve o instanță de `IMVXCommandhelper`. Această modificare își propune să atenueze NRES, asigurându -se că comenzile pot funcționa în continuare chiar dacă furnizorul IOC nu este complet inițializat [1].

2. Îmbunătățiri de gestionare a erorilor: Manipularea potențialelor referințe nule a fost îmbunătățită în diferite părți ale cadrului. De exemplu, au fost adăugate verificări pentru a se asigura că anumite proprietăți și metode nu încearcă să derefereze obiecte nule. Acest lucru este relevant în special pentru componentele care se bazează pe servicii externe sau dependențe care pot să nu fie întotdeauna disponibile [1].

3. Reglarea testării unității: utilizatorii au raportat probleme cu testele unitare care nu au reușit din cauza excepțiilor de referință nule atunci când utilizează `mvxasynccommand`. Recomandarea a fost făcută pentru inițializarea explicit a furnizorului de IOC în proiecte de testare a unităților. Această ajustare ajută să se asigure că toate dependențele sunt rezolvate în mod corespunzător înainte de a executa teste, reducând astfel probabilitatea de a întâlni NRES în timpul scenariilor de testare [1].

4. Remedieri generale ale erorilor: Notele de eliberare pentru MVVMCross 6.2.2 indică faptul că o serie de bug -uri legate de excepțiile de referință nule au fost abordate, deși detalii specifice despre fiecare fix nu au fost documentate pe larg. Aceste corecții pot include ajustări pe diverse componente ale cadrului în care au fost raportate anterior NRES [10].

În general, aceste modificări ale MVVMcross 6.2.2 se concentrează pe îmbunătățirea stabilității și fiabilității execuției comenzii și a rezoluției dependenței, care sunt domenii critice în care pot apărea excepții de referință nulă. Prin îmbunătățirea procesului de inițializare și gestionarea erorilor, dezvoltatorii se pot aștepta la o reducere a unor astfel de excepții în aplicațiile lor construite cu acest cadru.

Citări:
[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/