.NET 社区工具包 8.2:MVVM 工具包属性、性能增强及更多

.NET Community Toolkit 8.2 版本发布

Microsoft 发布了最新版本的 .NET Community Toolkit 8.2,该版本带来了多项新功能和性能优化,重点关注 MVVM(Model-View-ViewModel)工具包的改进。

主要新特性

  1. RelayCommand 支持自定义属性

    • 该功能基于用户反馈,支持在 RelayCommand 中使用自定义属性,特别是通过 C# 的 field:property: 语法来控制生成成员的属性。
    • 该功能在需要支持 JSON 序列化的视图模型中非常有用,允许显式忽略生成的属性。
  2. ObservableProperty 新增属性变更钩子

    • 引入了两个新的属性变更钩子,用于处理 MVVM 中常见的场景,例如修改“选中项”时需要同时处理旧值和新值。
    • 这些钩子解决了之前使用 ObservableProperty 时无法轻松注入逻辑的问题。
  3. 新的诊断分析器和代码修复器

    • 新增的诊断分析器可以检测用户错误访问 ObservableProperty 字段或声明类似属性但未使用继承的情况。
    • 内置的代码修复器支持通过 IntelliSense 快速修复代码,并支持批量修复。

性能优化

  1. 源生成器的性能提升

    • 优化了增量管道以减少内存使用,并确保在并发执行时不会保留不必要的对象。
    • 部分诊断被移至诊断分析器中,以支持并发和进程外执行。
  2. 其他优化

    • 移除了增量管道中的一些 Roslyn 符号,并在初始回调设置中提前解析必要的分析器符号,以加速回调执行。

修复与改进

  1. 修复了 VB.NET 项目的构建错误

    • 解决了 VB.NET 项目中的构建问题,并修复了双属性参数的转发问题。
  2. 新支持的功能

    • 支持 RelayCommand 中的部分方法。
    • 支持在 ToTypeString 中使用开放泛型类型。
    • 在 ObservableProperty 的 setter 中生成 MemberNotNull 属性。
    • 为所有生成的类型和成员提供了完整的 XML 文档,以便更好地理解代码。

总结

.NET Community Toolkit 8.2 版本通过新增功能、性能优化和修复,进一步提升了开发体验,特别是在 MVVM 场景下的开发效率和代码质量。开发者可以通过 GitHub 查看完整的变更列表。

阅读 29
0 条评论