.NET Community Toolkit 8.2 版本发布
Microsoft 发布了最新版本的 .NET Community Toolkit 8.2,该版本带来了多项新功能和性能优化,重点关注 MVVM(Model-View-ViewModel)工具包的改进。
主要新特性
RelayCommand 支持自定义属性
- 该功能基于用户反馈,支持在 RelayCommand 中使用自定义属性,特别是通过 C# 的
field:和property:语法来控制生成成员的属性。 - 该功能在需要支持 JSON 序列化的视图模型中非常有用,允许显式忽略生成的属性。
- 该功能基于用户反馈,支持在 RelayCommand 中使用自定义属性,特别是通过 C# 的
ObservableProperty 新增属性变更钩子
- 引入了两个新的属性变更钩子,用于处理 MVVM 中常见的场景,例如修改“选中项”时需要同时处理旧值和新值。
- 这些钩子解决了之前使用 ObservableProperty 时无法轻松注入逻辑的问题。
新的诊断分析器和代码修复器
- 新增的诊断分析器可以检测用户错误访问 ObservableProperty 字段或声明类似属性但未使用继承的情况。
- 内置的代码修复器支持通过 IntelliSense 快速修复代码,并支持批量修复。
性能优化
源生成器的性能提升
- 优化了增量管道以减少内存使用,并确保在并发执行时不会保留不必要的对象。
- 部分诊断被移至诊断分析器中,以支持并发和进程外执行。
其他优化
- 移除了增量管道中的一些 Roslyn 符号,并在初始回调设置中提前解析必要的分析器符号,以加速回调执行。
修复与改进
修复了 VB.NET 项目的构建错误
- 解决了 VB.NET 项目中的构建问题,并修复了双属性参数的转发问题。
新支持的功能
- 支持 RelayCommand 中的部分方法。
- 支持在 ToTypeString 中使用开放泛型类型。
- 在 ObservableProperty 的 setter 中生成
MemberNotNull属性。 - 为所有生成的类型和成员提供了完整的 XML 文档,以便更好地理解代码。
总结
.NET Community Toolkit 8.2 版本通过新增功能、性能优化和修复,进一步提升了开发体验,特别是在 MVVM 场景下的开发效率和代码质量。开发者可以通过 GitHub 查看完整的变更列表。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。