Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Aké zmeny sa uskutočnili v MVVMCross 6.2.2, ktoré by mohli mať vplyv na referenčné výnimky


Aké zmeny sa uskutočnili v MVVMCross 6.2.2, ktoré by mohli mať vplyv na referenčné výnimky


Vo verzii MVVMCross verzie 6.2.2 sa uskutočnilo niekoľko zmien, ktoré by mohli ovplyvniť výskyt nulových referenčných výnimiek (NRE). Tu sú kľúčové úpravy:

1. Inicializácia poskytovateľa IOC: Jedna významná zmena sa týka inicializácie `MVX.iocprovider`. Pred touto verziou, ak poskytovateľ IOC nebol správne nastavený, mohlo by to viesť k nulovým referenčným výnimkám pri vytváraní príkazov ako `mvxasynccommand` v modeloch View. Konštruktor pre `MVXCommandBase` bol aktualizovaný tak, aby obsahoval mechanizmus valca, ktorý používa` mvxWeakCommandhelper`, ak je poskytovateľ IOC null alebo nedokáže vyriešiť inštanciu „imvxCommandhelper`. Cieľom tejto zmeny je zmierniť NRE zabezpečením, že príkazy môžu stále fungovať, aj keď poskytovateľ IOC nie je úplne inicializovaný [1].

2. Vylepšenia manipulácie s chybami: Riešenie potenciálnych nulových odkazov sa zlepšilo v rôznych častiach rámca. Napríklad boli pridané kontroly, aby sa zabezpečilo, že určité vlastnosti a metódy sa nepokúšajú dereferencie nulových objektov. Toto je obzvlášť dôležité pre komponenty, ktoré sa spoliehajú na externé služby alebo závislosti, ktoré nemusia byť vždy k dispozícii [1].

3. Úpravy testovania jednotiek: Užívatelia hlásili problémy s testmi jednotiek zlyhania z dôvodu nulových referenčných výnimiek pri používaní `mvxasynccommand`. Odporúčanie bolo poskytnuté na výslovnú inicializáciu poskytovateľa IOC v testovacích projektoch jednotiek. Táto úprava pomáha zabezpečiť, aby boli všetky závislosti správne vyriešené pred vykonaním testov, čím sa zníži pravdepodobnosť stretnutia s NRE počas testovacích scenárov [1].

4. Všeobecné opravy chýb: Poznámky k vydaniu pre MVVMCross 6.2.2 naznačujú, že sa riešilo niekoľko chýb súvisiacich s referenčnými výnimkami nulových referenčných výnimiek, hoci konkrétne podrobnosti o každej oprave neboli podrobne zdokumentované. Tieto opravy môžu obsahovať úpravy v rôznych komponentoch rámca, kde boli predtým hlásené NRE [10].

Celkovo sa tieto zmeny v MVVMCross 6.2.2 zameriavajú na zlepšenie stability a spoľahlivosti vykonávania príkazu a rozlíšenia závislosti, ktoré sú kritickými oblasťami, v ktorých môžu vzniknúť nulové referenčné výnimky. Zvýšením inicializačného procesu a spracovania chýb môžu vývojári očakávať zníženie takýchto výnimiek vo svojich aplikáciách vytvorených v tomto rámci.

Citácie:
[1] https://stackoverflow.com/questions/53597908/mvvm-cross-null-references-wen-unit-utesting-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/