Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kādas izmaiņas tika veiktas MVVMCROSS 6.2.2, kas varētu ietekmēt nulles atsauces izņēmumus


Kādas izmaiņas tika veiktas MVVMCROSS 6.2.2, kas varētu ietekmēt nulles atsauces izņēmumus


MVVMCROSS versijā 6.2.2. Tika veiktas vairākas izmaiņas, kas varētu ietekmēt nulles atsauces izņēmumu (NRE) parādīšanos. Šeit ir galvenās modifikācijas:

1. SOK nodrošinātāja inicializācija: viena būtiska izmaiņa attiecas uz `mvx.iocprovider` inicializāciju. Pirms šīs versijas, ja SOK pakalpojumu sniedzējs netiktu iestatīts pareizi, tas varētu izraisīt atsauces izņēmumus, veidojot tādas komandas kā `mvxasynccommand` skata modeļos. `MVXCommandBase` konstruktors tika atjaunināts, lai iekļautu rezerves mehānismu, kas izmanto` MVXWeakCommandHelper`, ja SOK nodrošinātājs nav nulle vai neizdodas atrisināt `IMVXCommandHelper" gadījumu. Šo izmaiņu mērķis ir mazināt NRE, nodrošinot, ka komandas joprojām var darboties pat tad, ja SOK pakalpojumu sniedzējs nav pilnībā inicializēts [1].

2. Kļūdu apstrādes uzlabojumi: dažādās ietvara daļās ir uzlabota iespējamo nulles atsauces apstrāde. Piemēram, ir pievienotas pārbaudes, lai pārliecinātos, ka noteiktas īpašības un metodes nemēģina atcelt objektus. Tas ir īpaši svarīgi komponentiem, kas paļaujas uz ārējiem pakalpojumiem vai atkarībām, kuras ne vienmēr var būt pieejamas [1].

3. Vienības pārbaudes korekcijas: Lietotāji ziņoja par vienības testu problēmām, kas neizdodas, ja ir nulles atsauces izņēmumi, lietojot `mvxasynccommand`. Tika ieteikts skaidri inicializēt SOK pakalpojumu sniedzēju vienības testa projektos. Šī pielāgošana palīdz nodrošināt, ka visas atkarības tiek pareizi atrisinātas pirms testu izpildes, tādējādi samazinot iespējamību sastapties ar NRE testēšanas scenāriju laikā [1].

4. Vispārīgi kļūdu labojumi: MVVMCROSS 6.2.2 izlaišanas piezīmes norāda, ka ir apskatītas vairākas kļūdas, kas saistītas ar nulles atsauces izņēmumiem, lai gan īpaša informācija par katru labojumu nebija plaši dokumentēta. Šie labojumi var ietvert pielāgojumus dažādiem ietvara sastāvdaļām, kur iepriekš tika ziņots par NRE [10].

Kopumā šīs izmaiņas MVVMCROSS 6.2.2, koncentrējoties uz komandu izpildes un atkarības izšķirtspējas stabilitātes un ticamības uzlabošanu, kas ir kritiskas jomas, kurās var rasties nulles atsauces izņēmumi. Paaugstinot inicializācijas procesu un kļūdu apstrādi, izstrādātāji var sagaidīt, ka šādus izņēmumus samazina to lietojumprogrammās, kas veidotas ar šo sistēmu.

Atsauces:
[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=Uzsdzok4Un88
[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/