Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mitä muutoksia tehtiin MVVMCross 6.2.2: ssa, jotka saattavat vaikuttaa nollaviitepoikkeuksiin


Mitä muutoksia tehtiin MVVMCross 6.2.2: ssa, jotka saattavat vaikuttaa nollaviitepoikkeuksiin


MVVMCross -versiossa 6.2.2 tehtiin useita muutoksia, jotka voivat vaikuttaa nollaviitepoikkeusten (NRE) esiintymiseen. Tässä ovat keskeiset muutokset:

1. IOC -palveluntarjoajan alustaminen: Yksi merkittävä muutos liittyy `mvx.iocprovider` -alustamiseen. Ennen tätä versiota, jos IOC -palveluntarjoajaa ei ole määritetty oikein, se voi johtaa nollaviitepoikkeuksiin rakennettaessa komentoja, kuten `mvxasynccommand` näkymämalleihin. "MVXCommandBase" -rakentaja päivitettiin sisällyttämään varaamekanismi, joka käyttää `mvxweakCommandHelper`, jos IOC -palveluntarjoaja on tyhjä tai se ei pysty ratkaisemaan` IMvxCommandHelper` -tapahtumaa. Tämän muutoksen tarkoituksena on lieventää NRE: tä varmistamalla, että komennot voivat silti toimia, vaikka KOK -palveluntarjoaja ei ole täysin alustettu [1].

2. Virheenkäsittelyparannukset: Potentiaalisten nollaviitteiden käsittelyä on parantunut kehyksen eri osissa. Esimerkiksi tarkistuksia on lisätty sen varmistamiseksi, että tietyt ominaisuudet ja menetelmät eivät yritä häiriötä nolliobjekteja. Tämä on erityisen merkityksellistä komponenteille, jotka luottavat ulkoisiin palveluihin tai riippuvuuksiin, joita ei aina ole saatavana [1].

3. Yksikkötestaus Säätö: Käyttäjät ilmoittivat ongelmia yksikkötesteissä, jotka epäonnistuvat nollaviitepoikkeuksista, kun käytetään `mvxasyncommand '. Suositus annettiin nimenomaisesti IOC -palveluntarjoajan alustavasti yksikkötestiprojekteissa. Tämä säätö auttaa varmistamaan, että kaikki riippuvuudet on ratkaistu oikein ennen testien suorittamista, mikä vähentää NRES: n kohtaamisen todennäköisyyttä testiskenaarioiden aikana [1].

4. Yleiset virhekorjaukset: MVVMCross 6.2.2: n julkaisuhuomautukset osoittavat, että useita NULL -viitepoikkeuksiin liittyviä virheitä osoitettiin, vaikka kunkin korjauksen erityisiä yksityiskohtia ei dokumentoitu laajasti. Nämä korjaukset voivat sisältää säädöt kehyksen eri komponentteihin, joissa NRE: t aiemmin ilmoitettiin [10].

Kaiken kaikkiaan nämä MVVMCross 6.2.2: n muutokset keskittyvät komentojen suorittamisen ja riippuvuuden resoluution vakauden ja luotettavuuden parantamiseen, jotka ovat kriittisiä alueita, joilla voi syntyä nollaviitepoikkeuksia. Parannalla alustusprosessia ja virheenkäsittelyä kehittäjät voivat odottaa vähenevän tällaisia ​​poikkeuksia tämän kehyksen kanssa rakennettujen sovellustensa kanssa.

Viittaukset:
.
[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
.
[7] https://github.com/mvvmcross/mvvmcross/issues/3310
[8] https://github.com/mvvmcross/mvvmcross/blob/developop/changelog.md
[9.
[10] https://www.mvvmcross.com/mvvmcross-6.2.0-release/