Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quelles modifications ont été apportées dans MVVMCross 6.2.2 qui pourraient avoir un impact sur les exceptions de référence nul


Quelles modifications ont été apportées dans MVVMCross 6.2.2 qui pourraient avoir un impact sur les exceptions de référence nul


Dans MVVMCross version 6.2.2, plusieurs modifications ont été apportées qui pourraient avoir un impact sur la survenue d'exceptions de référence nul (NRES). Voici les modifications clés:

1. Initialisation du fournisseur IOC: Un changement significatif est lié à l'initialisation du `mvx.iocprovider». Avant cette version, si le fournisseur IOC n'était pas configuré correctement, cela pourrait conduire à des exceptions de référence nulles lors de la construction de commandes comme `mvxasynccommand` dans les modèles de vue. Le constructeur de `mvxcommandbase` a été mis à jour pour inclure un mécanisme de secours qui utilise` mvxweakcommandhelper »si le fournisseur IOC est nul ou ne résout pas une instance de` imvxcommandhelper`. Ce changement vise à atténuer les NRA en veillant à ce que les commandes puissent toujours fonctionner même si le fournisseur IOC n'est pas entièrement initialisé [1].

2. Améliorations de la gestion des erreurs: La gestion des références nulles potentielles a été améliorée dans diverses parties du cadre. Par exemple, des vérifications ont été ajoutées pour s'assurer que certaines propriétés et méthodes n'essayent pas de déréférence des objets nuls. Ceci est particulièrement pertinent pour les composants qui reposent sur des services externes ou des dépendances qui ne sont pas toujours disponibles [1].

3. Réglage des tests unitaires: les utilisateurs ont signalé des problèmes avec les tests unitaires défaillant en raison des exceptions de référence NULL lors de l'utilisation de `Mvxasynccommand». La recommandation a été faite pour initialiser explicitement le fournisseur du CIO dans les projets de test unitaire. Cet ajustement permet de garantir que toutes les dépendances sont correctement résolues avant d'exécuter des tests, réduisant ainsi la probabilité de rencontrer NRES pendant les scénarios de test [1].

4. Correction générale de bogues: les notes de version pour MVVMCross 6.2.2 indiquent qu'un certain nombre de bogues liés aux exceptions de référence NULL ont été traités, bien que les détails spécifiques de chaque correction n'étaient pas largement documentés. Ces correctifs peuvent inclure des ajustements sur divers composants du cadre où les NRES ont déjà été signalés [10].

Dans l'ensemble, ces changements dans MVVMCROSS 6.2.2 se concentrent sur l'amélioration de la stabilité et de la fiabilité de l'exécution des commandes et de la résolution de dépendance, qui sont des domaines critiques où des exceptions de référence nulles peuvent survenir. En améliorant le processus d'initialisation et la gestion des erreurs, les développeurs peuvent s'attendre à une réduction de ces exceptions dans leurs applications construites avec ce cadre.

Citations:
[1] https://stackoverflow.com/questions/53597908/mvvm-cross-null-reference- when-unit-testting-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/