Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MVVMCross 6.2.2中发生了哪些更改,可能会影响NULL参考异常


MVVMCross 6.2.2中发生了哪些更改,可能会影响NULL参考异常


在MVVMCross版本6.2.2中,进行了几次更改,可能会影响NULL参考例外(NRE)的发生。这是关键修改:

1。IOC提供者初始化:一个重大的更改与`mvx.iocprovider'的初始化有关。在此版本之前,如果未正确设置IOC提供商,则在视图模型中构造``mvxasynccommand''命令时可能会导致null参考异常。如果IOC提供商无效或未能解决`imvxCommandHelper'的实例,则更新了“ mvxCommandBase”的构造函数,其中包括使用`mvxWeakCommandHelper'的后备机制。此更改旨在通过确保命令仍然可以运行,即使IOC提供商未完全初始化[1],旨在减轻NRE。

2。错误处理改进:框架的各个部分的处理方法已改进了潜在的无效参考。例如,已经添加了检查以确保某些属性和方法不会尝试放置空对象。这与依赖外部服务或可能不一定总是可用的依赖关系的组件特别重要[1]。

3。单元测试调整:用户报告使用`mvxasynccommand'时,由于null参考异常而导致的单位测试问题。提出了建议在单位测试项目中明确初始化IOC提供商。此调整有助于确保在执行测试之前正确解决所有依赖关系,从而减少在测试方案中遇到NRE的可能性[1]。

4。通用错误修复:MVVMCROSS 6.2.2的发行说明表明与NULL参考异常有关的许多错误,尽管每个修复程序上的具体详细信息均未得到广泛的记录。这些修复程序可能包括先前报道NRE的框架的各个组件的调整[10]。

总体而言,MVVMCross 6.2.2的这些变化专注于提高命令执行和依赖分辨率的稳定性和可靠性,这是可能出现无参考异常的关键领域。通过增强初始化过程和错误处理,开发人员可以期望使用此框架构建的应用程序中的这种例外情况会减少。

引用:
[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_pair_to_mac_null_reference_exection/
[10] https://www.mvvmcross.com/mvvmcross-6.2.0-release/