适配 Native AOT:CommonLibraries 迎来重大更新
💡
原文中文,约5800字,阅读约需14分钟。
📝
内容提要
本文介绍了Sang.AspNetCore.CommonLibraries的更新,重构核心类库以支持.NET的Native AOT特性,提升性能与兼容性。新增双向兼容功能,使MessageModel<T>同时支持“status”和“code”字段,解决不同项目的命名偏好问题。同时,更新包括显式注册和配置,以适应AOT环境,确保序列化和反序列化的兼容性。
🎯
关键要点
- Sang.AspNetCore.CommonLibraries进行了更新,以支持.NET的Native AOT特性。
- 重构核心类库以提升性能与兼容性,解决传统库在AOT环境下的问题。
- 新增双向兼容功能,MessageModel<T>同时支持'status'和'code'字段。
- 反序列化时,JSON中的'status'或'code'都能正确映射到MessageModel<T>.Status。
- 序列化时,输出字段名可配置为'status'或'code',通过StatusFieldName属性控制。
- 使用JsonConverterFactory实现MessageModel<T>的自动生效,兼顾AOT与非AOT环境。
- 在AOT模式下,需显式注册元数据和转换器,避免使用反射导致的错误。
- Native AOT要求开发者从反射驱动转向显式声明,提升启动速度和降低内存占用。
- 更新旨在帮助开发者在享受AOT红利的同时,保持一致性返回体验。
➡️