Releases: GameFrameX/GameFrameX.Foundation
Releases · GameFrameX/GameFrameX.Foundation
Release list
4.0.0
[4.0.0] - 2026-08-13
Bug Fixes
- 解耦 Loki sink 批量配置并对齐全局日志级别
- Loki 推送周期配置改为秒并兜底非法值
Features
- 支持自定义位宽生成雪花ID
Miscellaneous Tasks
- 升级 nuget 依赖版本
[3.1.2] - 2026-08-12
Testing
- 消除 FlagOptionAttributeTests 的 Sonar S2701 字面量布尔断言 (#261)
[3.1.1] - 2026-08-12
Testing
- 为 DsaHelper Dispose 测试补显式断言以消除 S2699 (#257)
- 补全 SetFrameLength 测试断言以消除 Sonar S2699 (#258)
- 为 RsaHelper Dispose 测试补显式断言以消除 S2699 (#259)
[3.1.0] - 2026-08-12
Features
- 新增 data 字符串契约解析方法
Build
- 忽略 .codegraph 索引目录
[3.0.0] - 2026-08-12
Bug Fixes
- 升级 semantic-version 至 v6 并采用 Conventional Commits 默认 pattern
[2.9.1] - 2026-08-12
Bug Fixes
- 修复语义版本识别并补正版本号至 3.0.0
[2.9.0] - 2026-08-12
Bug Fixes
- 修复 DisposableDictionaryTests 缺失断言的 Sonar S2699 违规 (#94)
- 消除 DisposableConcurrentDictionaryTests 的 Sonar S2699 缺失断言违规 (#95)
- 消除 LocalizationServiceTests 的 Sonar S2699 缺失断言违规 (#98)
- 消除 SpanExtensions.WriteBytesWithoutLength 的 Sonar S6640 unsafe 违规 (#100)
- 重命名 NullObject.CompareTo 参数 value 为 obj (#103)
- 修复 ConcurrentLimitedQueue.Limit setter 不直接引用 _limit 字段的 Sonar S4275 违规 (#104)
- 为 CnReg 补传 Regex matchTimeout 消除 Sonar S6444 (#105)
- 抑制 Md5Helper.Hash(byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#107)
- 抑制 Md5Helper.HashWithSalt(string, byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#108)
- 抑制 Md5Helper.Hash(Stream) 的 Sonar S4790 弱哈希告警 (#110)
- 抑制 Md5Helper.HashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#112)
- 抑制 Md5Helper 的 Sonar S4790 弱哈希漏洞告警 (#106)
- 重命名 XxHashHelper 内层 Hash64 unsafe 方法规避 Sonar S3218 shadow (#114)
- 重命名 XxHashHelper 内层 Hash32(string) 消除 Sonar S3218 shadow (#116)
- 重命名内部类型哈希方法 (#117)
- 重命名内部字节哈希方法 (#118)
- 重命名 xxHash 内部 Hash32 以消除外层成员遮蔽 (#115)
- 消除 CrcHelper.Crc64.GetHashCode 的 Sonar S3877 BLOCKER (#109)
- 实现 ResourceManager 的 IDisposable 接口 (#111)
- 重命名 InternalXxHashHelper 公开方法消除 Sonar S3218 遮蔽 (#119)
- 消除 XxHashHelper Hash64Core 的 Sonar S6640 unsafe 违规 (#155)
- 消除 XxHashHelper 的 Sonar S6640 unsafe 代码块违规 (#154)
- 消除 Sha1Helper.ComputeHash(byte[]) 的 Sonar S4790 弱哈希违规 (#162)
- 抑制 Sha1Helper.ComputeHash(Stream) 的 Sonar S4790 弱哈希告警 (#160)
- 抑制 Sha1Helper.ComputeHashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#159)
- 消除 XxHashHelper 32位路径的 Sonar S6640 unsafe 违规 (#158)
- 消除 XxHashHelper ComputeHash32 的 Sonar S6640 unsafe 违规 (#161)
- 抑制 Sha1Helper.ComputeFileHash(string) 的 Sonar S4790 弱哈希告警 (#166)
- 重构 OptionsDebugger.IsWideCharacter 降低 Cognitive Complexity 至阈值内 (#170)
- 修复中性文化资源基础名未剥离文化段
- 消除 OptionsBuilder._ensurePrefixedKeys 的 Sonar S4487 未读取字段告警 (#175)
- 消除 OptionsBuilder._boolFormat 的 Sonar S4487 未读取字段告警 (#188)
- 移除 Hash 项目不再需要的 AllowUnsafeBlocks 编译开关 (#209)
- 移除 NonCryptographicHashAlgorithm.GetHashCode 的 throw 消除 Sonar S3877 (#210)
- JsonHelper 正则替换补 matchTimeout 限制执行时间 (S6444) (#213)
- 抑制 DsaHelper.SignData(byte[], string) 的 Sonar S4790 弱哈希告警 (#214)
- 抑制 DsaHelper(string) 构造函数的 Sonar S4790 弱哈希告警 (#230)
- 抑制 DsaHelper.Make/VerifyData 的 Sonar S4790 弱哈希告警 (#232)
- 钉 SHA 并只传必要 secret 修复 sonar-issues.yml 的 S7635/S7637 安全违规 (#234)
- 抑制 UnicodeJsonEncoder 两个 unsafe override 的 Sonar S6640 告警 (#239)
- 补齐 Logger 参数空校验并扩充测试
- 强化 ORM 属性与实体契约校验
- 补齐 Snowflake 解析校验并扩充工具测试
- SM2/SM4 输入异常统一为 CryptographicException
- 命令行参数拒绝 null 元素
- 集成测试改用 httpbingo 提升稳定性
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- RSA 分块加解密复用缓冲池与切片写入
- MD5 带盐哈希改用增量哈希并简化十六进制编码
- SHA 系列十六进制编码改用 Convert.ToHexString
Documentation
- 更新 QQ 群号
Features
- HttpJsonResult 增加 TrackId/ErrorCode/Type/Time/Extras 字段及链路追踪中间件 (#247)
- 补充加密算法边界与综合测试
- 补充扩展方法边界与综合测试
- 补充哈希算法边界与 HMAC 测试
- 补充 HttpClient 扩展边界与综合测试
- 补充 HttpJsonResult 与 TrackId 中间件边界测试
- 补充 JsonHelper 与编码器边界测试
- 补充资源管理器与本地化测试
- 补充命令行与环境变量选项解析测试
- Disposable 字典补齐释放后访问保护
- 统一 TimerHelper 命名规范并补充 TimeSpan 转换
- 迁移 TimeOffset 测试至新命名
- 支持动态加载程序集的资源发现
- SM2/SM4 异常消息迁移至本地化
- 异常消息迁移至本地化资源
- 异常消息迁移至本地化资源
- 行版本冲突消息迁移至本地化
- 补齐 PUT/PATCH/DELETE 对称重载
- 新增 HttpClientResponse 原始响应 API
Refactor
- 拆分 LogHandler.Create 私有 helper 降低认知复杂度 (#93)
- 拆分 SequenceEqualSameType 降低认知复杂度 (#101)
- 降低 SequenceEqual<T1,T2> 认知复杂度 (#102)
- 降低 CrcHelper.GetCrc32(Stream, byte[], int) 认知复杂度 (#113)
- 拆分 LoadResources baseName 解析降低认知复杂度 (#171)
- 拆分 GetFriendlyTypeName 类型映射表降低认知复杂度 (#172)
- 抽取 TrySetPropertyValue 降低 ApplyDefaultValues 认知复杂度 (#178)
- 拆分 PrintParsedOptions 编排阶段降低认知复杂度 (#180)
- 抽取 TryGetDebugFromOptionsEnvVar 与 TryGetDebugFromRuntimeEnvironment 降低 ShouldEnableDebugOutput 认知复杂度 (#182)
- 抽取辅助方法降低 GetEnvironmentVariables 认知复杂度 (#184)
- 抽取 ExecuteAttemptAsync 降低 SendJsonCoreAsync 认知复杂度 (#187)
- 抽取辅助方法降低 ValidateRequiredOptions 认知复杂度 (#191)
- 抽取 ApplyKeyValuePair 与 ApplySeparatedOption 降低 ConvertToOptionsDictionary 认知复杂度 (#192)
- 抽取 ConvertBoolOptionValue 与 ConvertToTargetType 降低 ConvertOptionValue 认知复杂度 (#195)
- 抽取 ApplyOptions 辅助方法降 Cognitive Complexity (25→≤15) (#197)
- 抽取辅助方法降低 ConvertToStandardFormat 认知复杂度 (42→≤5) (#199)
- 重命名 Sm3Digest.ProcessWord 形参 in_Renamed 为 input 与基类对齐 (#201)
- 抽取辅助方法降低 ToCommandLineString 认知复杂度 (19→≤9) (#203)
- 移除 Sm3Digest.ProcessLength 中恒等的位与掩码 (#204)
- 重命名 Sm3Digest.DoFinal 形参 out_Renamed 为 output 与基类对齐 (#207)
- 重命名 GeneralDigest.BlockUpdate 形参 length 为 inLen 与接口对齐 (#215)
- 拆分 Sm4_crypt_cbc 加解密分块循环降低 Cognitive Complexity (S3776) (#229)
- 降低 SpecialFloatingPointDocumentConverter.GetModifiedJson Cognitive Complexity (S3776) (#240)
- 降低 OptionsBuilder.NormalizePropertyName Cognitive Complexity (S3776) (#242)
- 废弃 HttpJsonResult,统一为 HttpJsonResultData (#250)
Testing
- 消除 EnsureLoaded_ShouldNotThrow 的 Sonar S2699 缺失断言违规 (#97)
- 为 AssemblyResourceProvider 释放测试补充显式断言 (#99)
- 消除 OrmAttributeTests 第17行 Sonar S2701 字面量布尔断言 (#211)
- 消除 OrmAttributeTests 第19行 Sonar S2701 字面量布尔断言 (#212)
- 补充 Helper/TrackId 边界与逆向测试(null/空/类型不匹配/Unicode 往返/AsyncLocal 隔离/异常穿透)
Build
- 串行化测试执行以消除全局状态串扰
Ci
- 忽略 .github 目录的 SonarCloud 分析 (#252)
- 启用 Release 发布流水线
[2.8.3] - 2026-08-05
Testing
- 消除 OrmAttributeTests Sonar S2701 残存的平凡断言 (#92)
[2.8.2] - 2026-07-29
Bug Fixes
- 修复 OrmEntityTests 缺失断言的 Sonar S2699 违规 (#89)
[2.8.1] - 2026-07-29
Styling
- 消除 OrmAttributeTests 的 Sonar S2701 布尔字面量断言违规 (#88)
[2.7.0] - 2026-07-15
Features
- 重命名 Version 为 RowVersion
[2.6.0] - 2026-07-13
Documentation
- 更新 README 补齐密码哈希 KDF 文档
Features
- 新增租户/数据权限/敏感字段/树形/导入导出特性
- 新增下一代密码哈希 KDF
[2.5.2] - 2026-07-08
Bug Fixes
- SHA1/256/512 哈希校验改用常量时间比较
[2.5.1] - 2026-06-09
Bug Fixes
- 修复测试并行冲突和异步时序问题
Styling
- 移除测试文件尾部空行
Build
- 升级 Localization.Abstractions 至 10.0.8
- 升级 Grafana.Loki 并适配压缩 API
- 升级测试框架至 xunit v3
[2.5.0] - 2026-06-09
Bug Fixes
- SM4 兼容 C# 10.0 无符号右移
- 修复 GetNowWithUtc 返回非 UTC Kind
- 修复 ToHttpJsonResultData 转换失败时返回值
Features
- 新增异步释放字典和异步集合扩展
- 增强 BidirectionalDictionary
- ConcurrentLimitedQueue 溢出策略和丢弃通知
- 新增 HashHelper 统一入口和 HashAlgorithmKind
- 各哈希 Helper 新增流式和异步重载
- HMAC Helper 新增重载和验证方法
- 新增类型化 JSON 请求扩展
- 新增源生成、流式异步及错误详情重载
- 文化回退链、格式化错误策略及缺失键追踪
- 新增领域事件、租户组织基类和契约验证器
- 新增 ID 解析、WorkerId 提供者和统计指标
- TimerHelper 支持 TimeProvider 注入
- 新增 TryToHttpJsonResultData 转换诊断
- 新增日志敏感字段脱敏
- 新增 Sensitive 属性脱敏
- 新增 WorkerId 冲突检测与稳定哈希
Refactor
- Disposable 字典增加错误处理,移除终结器
Styling
- 测试代码适配 C# 10.0 语法
Testing
- 集成测试默认跳过,需环境变量启用
- 修复 OptionsBuilder 集合隔离,添加 HttpJsonResult 单元测试
- 新增异步释放字典和异步集合扩展测试
- BidirectionalDictionary 和 ConcurrentLimitedQueue 增强测试
- Disposable 字典错误处理测试
- 新增流式、异步和统一入口测试
- 新增源生成、流式异步和错误详情测试
- 新增高优先级功能测试
- 新增 ID 解析和 Worker 测试
- 新增 TimeProvider 注入测试
Build
- 更新各模块包描述和标签
- 测试项目禁用文档文件生成
- 降级 LangVersion 至 10.0
- 目标框架切换为 net10.0 单目标
- 升级 Localization.Abstractions 至 10.0.0
[2.4.9] - 2026-06-03
Bug Fixes
- 月份时区时间戳未应用时区偏移
[2.4.8] - 2026-06-03
Documentation
- 修复 README 文件 Markdown 格式
Styling
- 修复 TimerHelper XML 文档注释缩进
- 批量修复 C# 代码格式问题
[2.4.7] - 2026-05-30
Bug Fixes
- HmacSha256Helper 补充参数验证
- RsaHelper.SignData 不再静默返回 null
- DisposableDictionary.Dispose(bool) 检查 disposing 参数
- Sm4Helper 标记 ECB 模式方法为 Obsolete
- JsonHelper 简化反序列化 fallback 模式
- LogHelper.Error 移除昂贵的 StackTrace 构造
- HttpJsonResultHelper 日志级别 Fatal 降级为 Error
- NullObject.GetHashCode 增加 null 检查
- Md5Helper 移除静态 MD5 缓存实例,改用 MD5.Create()
- LogConsole 补全标题超长时的边界处理
- LogHandler 修复 GrafanaLoki null 检查与错误日志结构化
- Info(ILogger, Exception) 实际使用传入的 logger 参数
- WarningConsole 用 try/finally 保护 ConsoleColor.Reset
- DisposableAction 用 Interlocked 防止重复执行
- HmacSha256Helper 空字符串改为合法输入,仅拒绝 null
Testing
- RsaHelperTests 适配 SignData 不再返回 null 的新行为
- DisposableDictionaryTests 终结器不再释放值的测试适配
[2.4.6] - 2026-05-12
Bug Fixes
- ResourceManager 线程安全修复
- Async void 修正为 ValueTask
- 修复命令行解析负数参数问题
Refactor
- 加密算法升级
- ConcurrentLimitedQueue 改为组合模式
- CrcHelper 清理静态缓存字段
- 提取超时和响应流辅助类
- 移除 Deserialize 泛型约束
- 移除 ToHttpJsonResultData 泛型约束
- LogOptions.Default 改为共享实例
Testing
- 更新测试适配业务代码变更
- 添加测试集合隔离
[2.4.5] - 2026-05-08
Build
- 迁移解决方案文件为 .slnx 格式
[2.4.4] - 2026-05-08
Bug Fixes
- 修复文档链接地址和语言路径
Documentation
- 精简主 README 为项目概览
- 完善 ORM Entity 模块文档
- 完善 Utility 模块文档
- 添加 Localization 模块文档
[2.4.3] - 2026-05-07
Documentation
- 添加多语言 README 支持 (zh-CN, zh-TW, ja, ko)
- 完善多语言翻译内容
[2.4.2] - 2026-04-28
Ci
- 升级 actions/setup-dotnet@v5 和 action-gh-release@v3 适配 Node.js 24
[2.4.1] - 2026-04-28
Ci
- 迁移到 NuGet Trusted Publishing (OIDC)
- 添加 production 环境以匹配 NuGet Trusted Publishing 策略
[2.2.10] - 2026-04-02
Bug Fixes
- 修正小版本模式匹配以去除冒号
[2.2.9] - 2026-04-02
Features
- 添加支持四到八个属性值的调试消息记录方法
- 添加支持四到八个属性值的日志记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的致命错误消息记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的详细级别消息记录方法
[2.2.8] - 2026-03-22
Features
- 为实体字符串属性添加 MaxLength 验证特性
[2.2.7] - 2026-03-20
Features
- 添加字节序转换扩展方法
Testing
- 添加字节序转换测试
[2.2.6] - 2026-03-19
Bug Fixes
- 完善 Encryption 模块的双语文档注释
Documentation
...
3.1.2
[3.1.2] - 2026-08-12
Testing
- 消除 FlagOptionAttributeTests 的 Sonar S2701 字面量布尔断言 (#261)
[3.1.1] - 2026-08-12
Testing
- 为 DsaHelper Dispose 测试补显式断言以消除 S2699 (#257)
- 补全 SetFrameLength 测试断言以消除 Sonar S2699 (#258)
- 为 RsaHelper Dispose 测试补显式断言以消除 S2699 (#259)
[3.1.0] - 2026-08-12
Features
- 新增 data 字符串契约解析方法
Build
- 忽略 .codegraph 索引目录
[3.0.0] - 2026-08-12
Bug Fixes
- 升级 semantic-version 至 v6 并采用 Conventional Commits 默认 pattern
[2.9.1] - 2026-08-12
Bug Fixes
- 修复语义版本识别并补正版本号至 3.0.0
[2.9.0] - 2026-08-12
Bug Fixes
- 修复 DisposableDictionaryTests 缺失断言的 Sonar S2699 违规 (#94)
- 消除 DisposableConcurrentDictionaryTests 的 Sonar S2699 缺失断言违规 (#95)
- 消除 LocalizationServiceTests 的 Sonar S2699 缺失断言违规 (#98)
- 消除 SpanExtensions.WriteBytesWithoutLength 的 Sonar S6640 unsafe 违规 (#100)
- 重命名 NullObject.CompareTo 参数 value 为 obj (#103)
- 修复 ConcurrentLimitedQueue.Limit setter 不直接引用 _limit 字段的 Sonar S4275 违规 (#104)
- 为 CnReg 补传 Regex matchTimeout 消除 Sonar S6444 (#105)
- 抑制 Md5Helper.Hash(byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#107)
- 抑制 Md5Helper.HashWithSalt(string, byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#108)
- 抑制 Md5Helper.Hash(Stream) 的 Sonar S4790 弱哈希告警 (#110)
- 抑制 Md5Helper.HashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#112)
- 抑制 Md5Helper 的 Sonar S4790 弱哈希漏洞告警 (#106)
- 重命名 XxHashHelper 内层 Hash64 unsafe 方法规避 Sonar S3218 shadow (#114)
- 重命名 XxHashHelper 内层 Hash32(string) 消除 Sonar S3218 shadow (#116)
- 重命名内部类型哈希方法 (#117)
- 重命名内部字节哈希方法 (#118)
- 重命名 xxHash 内部 Hash32 以消除外层成员遮蔽 (#115)
- 消除 CrcHelper.Crc64.GetHashCode 的 Sonar S3877 BLOCKER (#109)
- 实现 ResourceManager 的 IDisposable 接口 (#111)
- 重命名 InternalXxHashHelper 公开方法消除 Sonar S3218 遮蔽 (#119)
- 消除 XxHashHelper Hash64Core 的 Sonar S6640 unsafe 违规 (#155)
- 消除 XxHashHelper 的 Sonar S6640 unsafe 代码块违规 (#154)
- 消除 Sha1Helper.ComputeHash(byte[]) 的 Sonar S4790 弱哈希违规 (#162)
- 抑制 Sha1Helper.ComputeHash(Stream) 的 Sonar S4790 弱哈希告警 (#160)
- 抑制 Sha1Helper.ComputeHashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#159)
- 消除 XxHashHelper 32位路径的 Sonar S6640 unsafe 违规 (#158)
- 消除 XxHashHelper ComputeHash32 的 Sonar S6640 unsafe 违规 (#161)
- 抑制 Sha1Helper.ComputeFileHash(string) 的 Sonar S4790 弱哈希告警 (#166)
- 重构 OptionsDebugger.IsWideCharacter 降低 Cognitive Complexity 至阈值内 (#170)
- 修复中性文化资源基础名未剥离文化段
- 消除 OptionsBuilder._ensurePrefixedKeys 的 Sonar S4487 未读取字段告警 (#175)
- 消除 OptionsBuilder._boolFormat 的 Sonar S4487 未读取字段告警 (#188)
- 移除 Hash 项目不再需要的 AllowUnsafeBlocks 编译开关 (#209)
- 移除 NonCryptographicHashAlgorithm.GetHashCode 的 throw 消除 Sonar S3877 (#210)
- JsonHelper 正则替换补 matchTimeout 限制执行时间 (S6444) (#213)
- 抑制 DsaHelper.SignData(byte[], string) 的 Sonar S4790 弱哈希告警 (#214)
- 抑制 DsaHelper(string) 构造函数的 Sonar S4790 弱哈希告警 (#230)
- 抑制 DsaHelper.Make/VerifyData 的 Sonar S4790 弱哈希告警 (#232)
- 钉 SHA 并只传必要 secret 修复 sonar-issues.yml 的 S7635/S7637 安全违规 (#234)
- 抑制 UnicodeJsonEncoder 两个 unsafe override 的 Sonar S6640 告警 (#239)
- 补齐 Logger 参数空校验并扩充测试
- 强化 ORM 属性与实体契约校验
- 补齐 Snowflake 解析校验并扩充工具测试
- SM2/SM4 输入异常统一为 CryptographicException
- 命令行参数拒绝 null 元素
- 集成测试改用 httpbingo 提升稳定性
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- RSA 分块加解密复用缓冲池与切片写入
- MD5 带盐哈希改用增量哈希并简化十六进制编码
- SHA 系列十六进制编码改用 Convert.ToHexString
Documentation
- 更新 QQ 群号
Features
- HttpJsonResult 增加 TrackId/ErrorCode/Type/Time/Extras 字段及链路追踪中间件 (#247)
- 补充加密算法边界与综合测试
- 补充扩展方法边界与综合测试
- 补充哈希算法边界与 HMAC 测试
- 补充 HttpClient 扩展边界与综合测试
- 补充 HttpJsonResult 与 TrackId 中间件边界测试
- 补充 JsonHelper 与编码器边界测试
- 补充资源管理器与本地化测试
- 补充命令行与环境变量选项解析测试
- Disposable 字典补齐释放后访问保护
- 统一 TimerHelper 命名规范并补充 TimeSpan 转换
- 迁移 TimeOffset 测试至新命名
- 支持动态加载程序集的资源发现
- SM2/SM4 异常消息迁移至本地化
- 异常消息迁移至本地化资源
- 异常消息迁移至本地化资源
- 行版本冲突消息迁移至本地化
- 补齐 PUT/PATCH/DELETE 对称重载
- 新增 HttpClientResponse 原始响应 API
Refactor
- 拆分 LogHandler.Create 私有 helper 降低认知复杂度 (#93)
- 拆分 SequenceEqualSameType 降低认知复杂度 (#101)
- 降低 SequenceEqual<T1,T2> 认知复杂度 (#102)
- 降低 CrcHelper.GetCrc32(Stream, byte[], int) 认知复杂度 (#113)
- 拆分 LoadResources baseName 解析降低认知复杂度 (#171)
- 拆分 GetFriendlyTypeName 类型映射表降低认知复杂度 (#172)
- 抽取 TrySetPropertyValue 降低 ApplyDefaultValues 认知复杂度 (#178)
- 拆分 PrintParsedOptions 编排阶段降低认知复杂度 (#180)
- 抽取 TryGetDebugFromOptionsEnvVar 与 TryGetDebugFromRuntimeEnvironment 降低 ShouldEnableDebugOutput 认知复杂度 (#182)
- 抽取辅助方法降低 GetEnvironmentVariables 认知复杂度 (#184)
- 抽取 ExecuteAttemptAsync 降低 SendJsonCoreAsync 认知复杂度 (#187)
- 抽取辅助方法降低 ValidateRequiredOptions 认知复杂度 (#191)
- 抽取 ApplyKeyValuePair 与 ApplySeparatedOption 降低 ConvertToOptionsDictionary 认知复杂度 (#192)
- 抽取 ConvertBoolOptionValue 与 ConvertToTargetType 降低 ConvertOptionValue 认知复杂度 (#195)
- 抽取 ApplyOptions 辅助方法降 Cognitive Complexity (25→≤15) (#197)
- 抽取辅助方法降低 ConvertToStandardFormat 认知复杂度 (42→≤5) (#199)
- 重命名 Sm3Digest.ProcessWord 形参 in_Renamed 为 input 与基类对齐 (#201)
- 抽取辅助方法降低 ToCommandLineString 认知复杂度 (19→≤9) (#203)
- 移除 Sm3Digest.ProcessLength 中恒等的位与掩码 (#204)
- 重命名 Sm3Digest.DoFinal 形参 out_Renamed 为 output 与基类对齐 (#207)
- 重命名 GeneralDigest.BlockUpdate 形参 length 为 inLen 与接口对齐 (#215)
- 拆分 Sm4_crypt_cbc 加解密分块循环降低 Cognitive Complexity (S3776) (#229)
- 降低 SpecialFloatingPointDocumentConverter.GetModifiedJson Cognitive Complexity (S3776) (#240)
- 降低 OptionsBuilder.NormalizePropertyName Cognitive Complexity (S3776) (#242)
- 废弃 HttpJsonResult,统一为 HttpJsonResultData (#250)
Testing
- 消除 EnsureLoaded_ShouldNotThrow 的 Sonar S2699 缺失断言违规 (#97)
- 为 AssemblyResourceProvider 释放测试补充显式断言 (#99)
- 消除 OrmAttributeTests 第17行 Sonar S2701 字面量布尔断言 (#211)
- 消除 OrmAttributeTests 第19行 Sonar S2701 字面量布尔断言 (#212)
- 补充 Helper/TrackId 边界与逆向测试(null/空/类型不匹配/Unicode 往返/AsyncLocal 隔离/异常穿透)
Build
- 串行化测试执行以消除全局状态串扰
Ci
- 忽略 .github 目录的 SonarCloud 分析 (#252)
- 启用 Release 发布流水线
[2.8.3] - 2026-08-05
Testing
- 消除 OrmAttributeTests Sonar S2701 残存的平凡断言 (#92)
[2.8.2] - 2026-07-29
Bug Fixes
- 修复 OrmEntityTests 缺失断言的 Sonar S2699 违规 (#89)
[2.8.1] - 2026-07-29
Styling
- 消除 OrmAttributeTests 的 Sonar S2701 布尔字面量断言违规 (#88)
[2.7.0] - 2026-07-15
Features
- 重命名 Version 为 RowVersion
[2.6.0] - 2026-07-13
Documentation
- 更新 README 补齐密码哈希 KDF 文档
Features
- 新增租户/数据权限/敏感字段/树形/导入导出特性
- 新增下一代密码哈希 KDF
[2.5.2] - 2026-07-08
Bug Fixes
- SHA1/256/512 哈希校验改用常量时间比较
[2.5.1] - 2026-06-09
Bug Fixes
- 修复测试并行冲突和异步时序问题
Styling
- 移除测试文件尾部空行
Build
- 升级 Localization.Abstractions 至 10.0.8
- 升级 Grafana.Loki 并适配压缩 API
- 升级测试框架至 xunit v3
[2.5.0] - 2026-06-09
Bug Fixes
- SM4 兼容 C# 10.0 无符号右移
- 修复 GetNowWithUtc 返回非 UTC Kind
- 修复 ToHttpJsonResultData 转换失败时返回值
Features
- 新增异步释放字典和异步集合扩展
- 增强 BidirectionalDictionary
- ConcurrentLimitedQueue 溢出策略和丢弃通知
- 新增 HashHelper 统一入口和 HashAlgorithmKind
- 各哈希 Helper 新增流式和异步重载
- HMAC Helper 新增重载和验证方法
- 新增类型化 JSON 请求扩展
- 新增源生成、流式异步及错误详情重载
- 文化回退链、格式化错误策略及缺失键追踪
- 新增领域事件、租户组织基类和契约验证器
- 新增 ID 解析、WorkerId 提供者和统计指标
- TimerHelper 支持 TimeProvider 注入
- 新增 TryToHttpJsonResultData 转换诊断
- 新增日志敏感字段脱敏
- 新增 Sensitive 属性脱敏
- 新增 WorkerId 冲突检测与稳定哈希
Refactor
- Disposable 字典增加错误处理,移除终结器
Styling
- 测试代码适配 C# 10.0 语法
Testing
- 集成测试默认跳过,需环境变量启用
- 修复 OptionsBuilder 集合隔离,添加 HttpJsonResult 单元测试
- 新增异步释放字典和异步集合扩展测试
- BidirectionalDictionary 和 ConcurrentLimitedQueue 增强测试
- Disposable 字典错误处理测试
- 新增流式、异步和统一入口测试
- 新增源生成、流式异步和错误详情测试
- 新增高优先级功能测试
- 新增 ID 解析和 Worker 测试
- 新增 TimeProvider 注入测试
Build
- 更新各模块包描述和标签
- 测试项目禁用文档文件生成
- 降级 LangVersion 至 10.0
- 目标框架切换为 net10.0 单目标
- 升级 Localization.Abstractions 至 10.0.0
[2.4.9] - 2026-06-03
Bug Fixes
- 月份时区时间戳未应用时区偏移
[2.4.8] - 2026-06-03
Documentation
- 修复 README 文件 Markdown 格式
Styling
- 修复 TimerHelper XML 文档注释缩进
- 批量修复 C# 代码格式问题
[2.4.7] - 2026-05-30
Bug Fixes
- HmacSha256Helper 补充参数验证
- RsaHelper.SignData 不再静默返回 null
- DisposableDictionary.Dispose(bool) 检查 disposing 参数
- Sm4Helper 标记 ECB 模式方法为 Obsolete
- JsonHelper 简化反序列化 fallback 模式
- LogHelper.Error 移除昂贵的 StackTrace 构造
- HttpJsonResultHelper 日志级别 Fatal 降级为 Error
- NullObject.GetHashCode 增加 null 检查
- Md5Helper 移除静态 MD5 缓存实例,改用 MD5.Create()
- LogConsole 补全标题超长时的边界处理
- LogHandler 修复 GrafanaLoki null 检查与错误日志结构化
- Info(ILogger, Exception) 实际使用传入的 logger 参数
- WarningConsole 用 try/finally 保护 ConsoleColor.Reset
- DisposableAction 用 Interlocked 防止重复执行
- HmacSha256Helper 空字符串改为合法输入,仅拒绝 null
Testing
- RsaHelperTests 适配 SignData 不再返回 null 的新行为
- DisposableDictionaryTests 终结器不再释放值的测试适配
[2.4.6] - 2026-05-12
Bug Fixes
- ResourceManager 线程安全修复
- Async void 修正为 ValueTask
- 修复命令行解析负数参数问题
Refactor
- 加密算法升级
- ConcurrentLimitedQueue 改为组合模式
- CrcHelper 清理静态缓存字段
- 提取超时和响应流辅助类
- 移除 Deserialize 泛型约束
- 移除 ToHttpJsonResultData 泛型约束
- LogOptions.Default 改为共享实例
Testing
- 更新测试适配业务代码变更
- 添加测试集合隔离
[2.4.5] - 2026-05-08
Build
- 迁移解决方案文件为 .slnx 格式
[2.4.4] - 2026-05-08
Bug Fixes
- 修复文档链接地址和语言路径
Documentation
- 精简主 README 为项目概览
- 完善 ORM Entity 模块文档
- 完善 Utility 模块文档
- 添加 Localization 模块文档
[2.4.3] - 2026-05-07
Documentation
- 添加多语言 README 支持 (zh-CN, zh-TW, ja, ko)
- 完善多语言翻译内容
[2.4.2] - 2026-04-28
Ci
- 升级 actions/setup-dotnet@v5 和 action-gh-release@v3 适配 Node.js 24
[2.4.1] - 2026-04-28
Ci
- 迁移到 NuGet Trusted Publishing (OIDC)
- 添加 production 环境以匹配 NuGet Trusted Publishing 策略
[2.2.10] - 2026-04-02
Bug Fixes
- 修正小版本模式匹配以去除冒号
[2.2.9] - 2026-04-02
Features
- 添加支持四到八个属性值的调试消息记录方法
- 添加支持四到八个属性值的日志记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的致命错误消息记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的详细级别消息记录方法
[2.2.8] - 2026-03-22
Features
- 为实体字符串属性添加 MaxLength 验证特性
[2.2.7] - 2026-03-20
Features
- 添加字节序转换扩展方法
Testing
- 添加字节序转换测试
[2.2.6] - 2026-03-19
Bug Fixes
- 完善 Encryption 模块的双语文档注释
Documentation
- 为 TimerHelper 添加双语文档注释
- 为 EnvironmentHelper 和 RuntimePlatformHelper 添加双语文档注释
- 为实体类和过滤器接口添加双语文档注释
- 为所有特性类添加双语文档注释
- 为 Options 项目添加双语文档注释
- 为 Logger 项目添加双语文档注释
- 为...
3.1.1
[3.1.1] - 2026-08-12
Testing
- 为 DsaHelper Dispose 测试补显式断言以消除 S2699 (#257)
- 补全 SetFrameLength 测试断言以消除 Sonar S2699 (#258)
- 为 RsaHelper Dispose 测试补显式断言以消除 S2699 (#259)
[3.1.0] - 2026-08-12
Features
- 新增 data 字符串契约解析方法
Build
- 忽略 .codegraph 索引目录
[3.0.0] - 2026-08-12
Bug Fixes
- 升级 semantic-version 至 v6 并采用 Conventional Commits 默认 pattern
[2.9.1] - 2026-08-12
Bug Fixes
- 修复语义版本识别并补正版本号至 3.0.0
[2.9.0] - 2026-08-12
Bug Fixes
- 修复 DisposableDictionaryTests 缺失断言的 Sonar S2699 违规 (#94)
- 消除 DisposableConcurrentDictionaryTests 的 Sonar S2699 缺失断言违规 (#95)
- 消除 LocalizationServiceTests 的 Sonar S2699 缺失断言违规 (#98)
- 消除 SpanExtensions.WriteBytesWithoutLength 的 Sonar S6640 unsafe 违规 (#100)
- 重命名 NullObject.CompareTo 参数 value 为 obj (#103)
- 修复 ConcurrentLimitedQueue.Limit setter 不直接引用 _limit 字段的 Sonar S4275 违规 (#104)
- 为 CnReg 补传 Regex matchTimeout 消除 Sonar S6444 (#105)
- 抑制 Md5Helper.Hash(byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#107)
- 抑制 Md5Helper.HashWithSalt(string, byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#108)
- 抑制 Md5Helper.Hash(Stream) 的 Sonar S4790 弱哈希告警 (#110)
- 抑制 Md5Helper.HashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#112)
- 抑制 Md5Helper 的 Sonar S4790 弱哈希漏洞告警 (#106)
- 重命名 XxHashHelper 内层 Hash64 unsafe 方法规避 Sonar S3218 shadow (#114)
- 重命名 XxHashHelper 内层 Hash32(string) 消除 Sonar S3218 shadow (#116)
- 重命名内部类型哈希方法 (#117)
- 重命名内部字节哈希方法 (#118)
- 重命名 xxHash 内部 Hash32 以消除外层成员遮蔽 (#115)
- 消除 CrcHelper.Crc64.GetHashCode 的 Sonar S3877 BLOCKER (#109)
- 实现 ResourceManager 的 IDisposable 接口 (#111)
- 重命名 InternalXxHashHelper 公开方法消除 Sonar S3218 遮蔽 (#119)
- 消除 XxHashHelper Hash64Core 的 Sonar S6640 unsafe 违规 (#155)
- 消除 XxHashHelper 的 Sonar S6640 unsafe 代码块违规 (#154)
- 消除 Sha1Helper.ComputeHash(byte[]) 的 Sonar S4790 弱哈希违规 (#162)
- 抑制 Sha1Helper.ComputeHash(Stream) 的 Sonar S4790 弱哈希告警 (#160)
- 抑制 Sha1Helper.ComputeHashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#159)
- 消除 XxHashHelper 32位路径的 Sonar S6640 unsafe 违规 (#158)
- 消除 XxHashHelper ComputeHash32 的 Sonar S6640 unsafe 违规 (#161)
- 抑制 Sha1Helper.ComputeFileHash(string) 的 Sonar S4790 弱哈希告警 (#166)
- 重构 OptionsDebugger.IsWideCharacter 降低 Cognitive Complexity 至阈值内 (#170)
- 修复中性文化资源基础名未剥离文化段
- 消除 OptionsBuilder._ensurePrefixedKeys 的 Sonar S4487 未读取字段告警 (#175)
- 消除 OptionsBuilder._boolFormat 的 Sonar S4487 未读取字段告警 (#188)
- 移除 Hash 项目不再需要的 AllowUnsafeBlocks 编译开关 (#209)
- 移除 NonCryptographicHashAlgorithm.GetHashCode 的 throw 消除 Sonar S3877 (#210)
- JsonHelper 正则替换补 matchTimeout 限制执行时间 (S6444) (#213)
- 抑制 DsaHelper.SignData(byte[], string) 的 Sonar S4790 弱哈希告警 (#214)
- 抑制 DsaHelper(string) 构造函数的 Sonar S4790 弱哈希告警 (#230)
- 抑制 DsaHelper.Make/VerifyData 的 Sonar S4790 弱哈希告警 (#232)
- 钉 SHA 并只传必要 secret 修复 sonar-issues.yml 的 S7635/S7637 安全违规 (#234)
- 抑制 UnicodeJsonEncoder 两个 unsafe override 的 Sonar S6640 告警 (#239)
- 补齐 Logger 参数空校验并扩充测试
- 强化 ORM 属性与实体契约校验
- 补齐 Snowflake 解析校验并扩充工具测试
- SM2/SM4 输入异常统一为 CryptographicException
- 命令行参数拒绝 null 元素
- 集成测试改用 httpbingo 提升稳定性
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- RSA 分块加解密复用缓冲池与切片写入
- MD5 带盐哈希改用增量哈希并简化十六进制编码
- SHA 系列十六进制编码改用 Convert.ToHexString
Documentation
- 更新 QQ 群号
Features
- HttpJsonResult 增加 TrackId/ErrorCode/Type/Time/Extras 字段及链路追踪中间件 (#247)
- 补充加密算法边界与综合测试
- 补充扩展方法边界与综合测试
- 补充哈希算法边界与 HMAC 测试
- 补充 HttpClient 扩展边界与综合测试
- 补充 HttpJsonResult 与 TrackId 中间件边界测试
- 补充 JsonHelper 与编码器边界测试
- 补充资源管理器与本地化测试
- 补充命令行与环境变量选项解析测试
- Disposable 字典补齐释放后访问保护
- 统一 TimerHelper 命名规范并补充 TimeSpan 转换
- 迁移 TimeOffset 测试至新命名
- 支持动态加载程序集的资源发现
- SM2/SM4 异常消息迁移至本地化
- 异常消息迁移至本地化资源
- 异常消息迁移至本地化资源
- 行版本冲突消息迁移至本地化
- 补齐 PUT/PATCH/DELETE 对称重载
- 新增 HttpClientResponse 原始响应 API
Refactor
- 拆分 LogHandler.Create 私有 helper 降低认知复杂度 (#93)
- 拆分 SequenceEqualSameType 降低认知复杂度 (#101)
- 降低 SequenceEqual<T1,T2> 认知复杂度 (#102)
- 降低 CrcHelper.GetCrc32(Stream, byte[], int) 认知复杂度 (#113)
- 拆分 LoadResources baseName 解析降低认知复杂度 (#171)
- 拆分 GetFriendlyTypeName 类型映射表降低认知复杂度 (#172)
- 抽取 TrySetPropertyValue 降低 ApplyDefaultValues 认知复杂度 (#178)
- 拆分 PrintParsedOptions 编排阶段降低认知复杂度 (#180)
- 抽取 TryGetDebugFromOptionsEnvVar 与 TryGetDebugFromRuntimeEnvironment 降低 ShouldEnableDebugOutput 认知复杂度 (#182)
- 抽取辅助方法降低 GetEnvironmentVariables 认知复杂度 (#184)
- 抽取 ExecuteAttemptAsync 降低 SendJsonCoreAsync 认知复杂度 (#187)
- 抽取辅助方法降低 ValidateRequiredOptions 认知复杂度 (#191)
- 抽取 ApplyKeyValuePair 与 ApplySeparatedOption 降低 ConvertToOptionsDictionary 认知复杂度 (#192)
- 抽取 ConvertBoolOptionValue 与 ConvertToTargetType 降低 ConvertOptionValue 认知复杂度 (#195)
- 抽取 ApplyOptions 辅助方法降 Cognitive Complexity (25→≤15) (#197)
- 抽取辅助方法降低 ConvertToStandardFormat 认知复杂度 (42→≤5) (#199)
- 重命名 Sm3Digest.ProcessWord 形参 in_Renamed 为 input 与基类对齐 (#201)
- 抽取辅助方法降低 ToCommandLineString 认知复杂度 (19→≤9) (#203)
- 移除 Sm3Digest.ProcessLength 中恒等的位与掩码 (#204)
- 重命名 Sm3Digest.DoFinal 形参 out_Renamed 为 output 与基类对齐 (#207)
- 重命名 GeneralDigest.BlockUpdate 形参 length 为 inLen 与接口对齐 (#215)
- 拆分 Sm4_crypt_cbc 加解密分块循环降低 Cognitive Complexity (S3776) (#229)
- 降低 SpecialFloatingPointDocumentConverter.GetModifiedJson Cognitive Complexity (S3776) (#240)
- 降低 OptionsBuilder.NormalizePropertyName Cognitive Complexity (S3776) (#242)
- 废弃 HttpJsonResult,统一为 HttpJsonResultData (#250)
Testing
- 消除 EnsureLoaded_ShouldNotThrow 的 Sonar S2699 缺失断言违规 (#97)
- 为 AssemblyResourceProvider 释放测试补充显式断言 (#99)
- 消除 OrmAttributeTests 第17行 Sonar S2701 字面量布尔断言 (#211)
- 消除 OrmAttributeTests 第19行 Sonar S2701 字面量布尔断言 (#212)
- 补充 Helper/TrackId 边界与逆向测试(null/空/类型不匹配/Unicode 往返/AsyncLocal 隔离/异常穿透)
Build
- 串行化测试执行以消除全局状态串扰
Ci
- 忽略 .github 目录的 SonarCloud 分析 (#252)
- 启用 Release 发布流水线
[2.8.3] - 2026-08-05
Testing
- 消除 OrmAttributeTests Sonar S2701 残存的平凡断言 (#92)
[2.8.2] - 2026-07-29
Bug Fixes
- 修复 OrmEntityTests 缺失断言的 Sonar S2699 违规 (#89)
[2.8.1] - 2026-07-29
Styling
- 消除 OrmAttributeTests 的 Sonar S2701 布尔字面量断言违规 (#88)
[2.7.0] - 2026-07-15
Features
- 重命名 Version 为 RowVersion
[2.6.0] - 2026-07-13
Documentation
- 更新 README 补齐密码哈希 KDF 文档
Features
- 新增租户/数据权限/敏感字段/树形/导入导出特性
- 新增下一代密码哈希 KDF
[2.5.2] - 2026-07-08
Bug Fixes
- SHA1/256/512 哈希校验改用常量时间比较
[2.5.1] - 2026-06-09
Bug Fixes
- 修复测试并行冲突和异步时序问题
Styling
- 移除测试文件尾部空行
Build
- 升级 Localization.Abstractions 至 10.0.8
- 升级 Grafana.Loki 并适配压缩 API
- 升级测试框架至 xunit v3
[2.5.0] - 2026-06-09
Bug Fixes
- SM4 兼容 C# 10.0 无符号右移
- 修复 GetNowWithUtc 返回非 UTC Kind
- 修复 ToHttpJsonResultData 转换失败时返回值
Features
- 新增异步释放字典和异步集合扩展
- 增强 BidirectionalDictionary
- ConcurrentLimitedQueue 溢出策略和丢弃通知
- 新增 HashHelper 统一入口和 HashAlgorithmKind
- 各哈希 Helper 新增流式和异步重载
- HMAC Helper 新增重载和验证方法
- 新增类型化 JSON 请求扩展
- 新增源生成、流式异步及错误详情重载
- 文化回退链、格式化错误策略及缺失键追踪
- 新增领域事件、租户组织基类和契约验证器
- 新增 ID 解析、WorkerId 提供者和统计指标
- TimerHelper 支持 TimeProvider 注入
- 新增 TryToHttpJsonResultData 转换诊断
- 新增日志敏感字段脱敏
- 新增 Sensitive 属性脱敏
- 新增 WorkerId 冲突检测与稳定哈希
Refactor
- Disposable 字典增加错误处理,移除终结器
Styling
- 测试代码适配 C# 10.0 语法
Testing
- 集成测试默认跳过,需环境变量启用
- 修复 OptionsBuilder 集合隔离,添加 HttpJsonResult 单元测试
- 新增异步释放字典和异步集合扩展测试
- BidirectionalDictionary 和 ConcurrentLimitedQueue 增强测试
- Disposable 字典错误处理测试
- 新增流式、异步和统一入口测试
- 新增源生成、流式异步和错误详情测试
- 新增高优先级功能测试
- 新增 ID 解析和 Worker 测试
- 新增 TimeProvider 注入测试
Build
- 更新各模块包描述和标签
- 测试项目禁用文档文件生成
- 降级 LangVersion 至 10.0
- 目标框架切换为 net10.0 单目标
- 升级 Localization.Abstractions 至 10.0.0
[2.4.9] - 2026-06-03
Bug Fixes
- 月份时区时间戳未应用时区偏移
[2.4.8] - 2026-06-03
Documentation
- 修复 README 文件 Markdown 格式
Styling
- 修复 TimerHelper XML 文档注释缩进
- 批量修复 C# 代码格式问题
[2.4.7] - 2026-05-30
Bug Fixes
- HmacSha256Helper 补充参数验证
- RsaHelper.SignData 不再静默返回 null
- DisposableDictionary.Dispose(bool) 检查 disposing 参数
- Sm4Helper 标记 ECB 模式方法为 Obsolete
- JsonHelper 简化反序列化 fallback 模式
- LogHelper.Error 移除昂贵的 StackTrace 构造
- HttpJsonResultHelper 日志级别 Fatal 降级为 Error
- NullObject.GetHashCode 增加 null 检查
- Md5Helper 移除静态 MD5 缓存实例,改用 MD5.Create()
- LogConsole 补全标题超长时的边界处理
- LogHandler 修复 GrafanaLoki null 检查与错误日志结构化
- Info(ILogger, Exception) 实际使用传入的 logger 参数
- WarningConsole 用 try/finally 保护 ConsoleColor.Reset
- DisposableAction 用 Interlocked 防止重复执行
- HmacSha256Helper 空字符串改为合法输入,仅拒绝 null
Testing
- RsaHelperTests 适配 SignData 不再返回 null 的新行为
- DisposableDictionaryTests 终结器不再释放值的测试适配
[2.4.6] - 2026-05-12
Bug Fixes
- ResourceManager 线程安全修复
- Async void 修正为 ValueTask
- 修复命令行解析负数参数问题
Refactor
- 加密算法升级
- ConcurrentLimitedQueue 改为组合模式
- CrcHelper 清理静态缓存字段
- 提取超时和响应流辅助类
- 移除 Deserialize 泛型约束
- 移除 ToHttpJsonResultData 泛型约束
- LogOptions.Default 改为共享实例
Testing
- 更新测试适配业务代码变更
- 添加测试集合隔离
[2.4.5] - 2026-05-08
Build
- 迁移解决方案文件为 .slnx 格式
[2.4.4] - 2026-05-08
Bug Fixes
- 修复文档链接地址和语言路径
Documentation
- 精简主 README 为项目概览
- 完善 ORM Entity 模块文档
- 完善 Utility 模块文档
- 添加 Localization 模块文档
[2.4.3] - 2026-05-07
Documentation
- 添加多语言 README 支持 (zh-CN, zh-TW, ja, ko)
- 完善多语言翻译内容
[2.4.2] - 2026-04-28
Ci
- 升级 actions/setup-dotnet@v5 和 action-gh-release@v3 适配 Node.js 24
[2.4.1] - 2026-04-28
Ci
- 迁移到 NuGet Trusted Publishing (OIDC)
- 添加 production 环境以匹配 NuGet Trusted Publishing 策略
[2.2.10] - 2026-04-02
Bug Fixes
- 修正小版本模式匹配以去除冒号
[2.2.9] - 2026-04-02
Features
- 添加支持四到八个属性值的调试消息记录方法
- 添加支持四到八个属性值的日志记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的致命错误消息记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的详细级别消息记录方法
[2.2.8] - 2026-03-22
Features
- 为实体字符串属性添加 MaxLength 验证特性
[2.2.7] - 2026-03-20
Features
- 添加字节序转换扩展方法
Testing
- 添加字节序转换测试
[2.2.6] - 2026-03-19
Bug Fixes
- 完善 Encryption 模块的双语文档注释
Documentation
- 为 TimerHelper 添加双语文档注释
- 为 EnvironmentHelper 和 RuntimePlatformHelper 添加双语文档注释
- 为实体类和过滤器接口添加双语文档注释
- 为所有特性类添加双语文档注释
- 为 Options 项目添加双语文档注释
- 为 Logger 项目添加双语文档注释
- 为 Json 项目添加双语文档注释
- 为 Http.Normalization 项目添加双语文档注释
- 为 Http.Extension 项目添加双语文档注释
- 为 Hash 项目添加双语文档...
3.1.0
[3.1.0] - 2026-08-12
Features
- 新增 data 字符串契约解析方法
Build
- 忽略 .codegraph 索引目录
[3.0.0] - 2026-08-12
Bug Fixes
- 升级 semantic-version 至 v6 并采用 Conventional Commits 默认 pattern
[2.9.1] - 2026-08-12
Bug Fixes
- 修复语义版本识别并补正版本号至 3.0.0
[2.9.0] - 2026-08-12
Bug Fixes
- 修复 DisposableDictionaryTests 缺失断言的 Sonar S2699 违规 (#94)
- 消除 DisposableConcurrentDictionaryTests 的 Sonar S2699 缺失断言违规 (#95)
- 消除 LocalizationServiceTests 的 Sonar S2699 缺失断言违规 (#98)
- 消除 SpanExtensions.WriteBytesWithoutLength 的 Sonar S6640 unsafe 违规 (#100)
- 重命名 NullObject.CompareTo 参数 value 为 obj (#103)
- 修复 ConcurrentLimitedQueue.Limit setter 不直接引用 _limit 字段的 Sonar S4275 违规 (#104)
- 为 CnReg 补传 Regex matchTimeout 消除 Sonar S6444 (#105)
- 抑制 Md5Helper.Hash(byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#107)
- 抑制 Md5Helper.HashWithSalt(string, byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#108)
- 抑制 Md5Helper.Hash(Stream) 的 Sonar S4790 弱哈希告警 (#110)
- 抑制 Md5Helper.HashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#112)
- 抑制 Md5Helper 的 Sonar S4790 弱哈希漏洞告警 (#106)
- 重命名 XxHashHelper 内层 Hash64 unsafe 方法规避 Sonar S3218 shadow (#114)
- 重命名 XxHashHelper 内层 Hash32(string) 消除 Sonar S3218 shadow (#116)
- 重命名内部类型哈希方法 (#117)
- 重命名内部字节哈希方法 (#118)
- 重命名 xxHash 内部 Hash32 以消除外层成员遮蔽 (#115)
- 消除 CrcHelper.Crc64.GetHashCode 的 Sonar S3877 BLOCKER (#109)
- 实现 ResourceManager 的 IDisposable 接口 (#111)
- 重命名 InternalXxHashHelper 公开方法消除 Sonar S3218 遮蔽 (#119)
- 消除 XxHashHelper Hash64Core 的 Sonar S6640 unsafe 违规 (#155)
- 消除 XxHashHelper 的 Sonar S6640 unsafe 代码块违规 (#154)
- 消除 Sha1Helper.ComputeHash(byte[]) 的 Sonar S4790 弱哈希违规 (#162)
- 抑制 Sha1Helper.ComputeHash(Stream) 的 Sonar S4790 弱哈希告警 (#160)
- 抑制 Sha1Helper.ComputeHashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#159)
- 消除 XxHashHelper 32位路径的 Sonar S6640 unsafe 违规 (#158)
- 消除 XxHashHelper ComputeHash32 的 Sonar S6640 unsafe 违规 (#161)
- 抑制 Sha1Helper.ComputeFileHash(string) 的 Sonar S4790 弱哈希告警 (#166)
- 重构 OptionsDebugger.IsWideCharacter 降低 Cognitive Complexity 至阈值内 (#170)
- 修复中性文化资源基础名未剥离文化段
- 消除 OptionsBuilder._ensurePrefixedKeys 的 Sonar S4487 未读取字段告警 (#175)
- 消除 OptionsBuilder._boolFormat 的 Sonar S4487 未读取字段告警 (#188)
- 移除 Hash 项目不再需要的 AllowUnsafeBlocks 编译开关 (#209)
- 移除 NonCryptographicHashAlgorithm.GetHashCode 的 throw 消除 Sonar S3877 (#210)
- JsonHelper 正则替换补 matchTimeout 限制执行时间 (S6444) (#213)
- 抑制 DsaHelper.SignData(byte[], string) 的 Sonar S4790 弱哈希告警 (#214)
- 抑制 DsaHelper(string) 构造函数的 Sonar S4790 弱哈希告警 (#230)
- 抑制 DsaHelper.Make/VerifyData 的 Sonar S4790 弱哈希告警 (#232)
- 钉 SHA 并只传必要 secret 修复 sonar-issues.yml 的 S7635/S7637 安全违规 (#234)
- 抑制 UnicodeJsonEncoder 两个 unsafe override 的 Sonar S6640 告警 (#239)
- 补齐 Logger 参数空校验并扩充测试
- 强化 ORM 属性与实体契约校验
- 补齐 Snowflake 解析校验并扩充工具测试
- SM2/SM4 输入异常统一为 CryptographicException
- 命令行参数拒绝 null 元素
- 集成测试改用 httpbingo 提升稳定性
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- RSA 分块加解密复用缓冲池与切片写入
- MD5 带盐哈希改用增量哈希并简化十六进制编码
- SHA 系列十六进制编码改用 Convert.ToHexString
Documentation
- 更新 QQ 群号
Features
- HttpJsonResult 增加 TrackId/ErrorCode/Type/Time/Extras 字段及链路追踪中间件 (#247)
- 补充加密算法边界与综合测试
- 补充扩展方法边界与综合测试
- 补充哈希算法边界与 HMAC 测试
- 补充 HttpClient 扩展边界与综合测试
- 补充 HttpJsonResult 与 TrackId 中间件边界测试
- 补充 JsonHelper 与编码器边界测试
- 补充资源管理器与本地化测试
- 补充命令行与环境变量选项解析测试
- Disposable 字典补齐释放后访问保护
- 统一 TimerHelper 命名规范并补充 TimeSpan 转换
- 迁移 TimeOffset 测试至新命名
- 支持动态加载程序集的资源发现
- SM2/SM4 异常消息迁移至本地化
- 异常消息迁移至本地化资源
- 异常消息迁移至本地化资源
- 行版本冲突消息迁移至本地化
- 补齐 PUT/PATCH/DELETE 对称重载
- 新增 HttpClientResponse 原始响应 API
Refactor
- 拆分 LogHandler.Create 私有 helper 降低认知复杂度 (#93)
- 拆分 SequenceEqualSameType 降低认知复杂度 (#101)
- 降低 SequenceEqual<T1,T2> 认知复杂度 (#102)
- 降低 CrcHelper.GetCrc32(Stream, byte[], int) 认知复杂度 (#113)
- 拆分 LoadResources baseName 解析降低认知复杂度 (#171)
- 拆分 GetFriendlyTypeName 类型映射表降低认知复杂度 (#172)
- 抽取 TrySetPropertyValue 降低 ApplyDefaultValues 认知复杂度 (#178)
- 拆分 PrintParsedOptions 编排阶段降低认知复杂度 (#180)
- 抽取 TryGetDebugFromOptionsEnvVar 与 TryGetDebugFromRuntimeEnvironment 降低 ShouldEnableDebugOutput 认知复杂度 (#182)
- 抽取辅助方法降低 GetEnvironmentVariables 认知复杂度 (#184)
- 抽取 ExecuteAttemptAsync 降低 SendJsonCoreAsync 认知复杂度 (#187)
- 抽取辅助方法降低 ValidateRequiredOptions 认知复杂度 (#191)
- 抽取 ApplyKeyValuePair 与 ApplySeparatedOption 降低 ConvertToOptionsDictionary 认知复杂度 (#192)
- 抽取 ConvertBoolOptionValue 与 ConvertToTargetType 降低 ConvertOptionValue 认知复杂度 (#195)
- 抽取 ApplyOptions 辅助方法降 Cognitive Complexity (25→≤15) (#197)
- 抽取辅助方法降低 ConvertToStandardFormat 认知复杂度 (42→≤5) (#199)
- 重命名 Sm3Digest.ProcessWord 形参 in_Renamed 为 input 与基类对齐 (#201)
- 抽取辅助方法降低 ToCommandLineString 认知复杂度 (19→≤9) (#203)
- 移除 Sm3Digest.ProcessLength 中恒等的位与掩码 (#204)
- 重命名 Sm3Digest.DoFinal 形参 out_Renamed 为 output 与基类对齐 (#207)
- 重命名 GeneralDigest.BlockUpdate 形参 length 为 inLen 与接口对齐 (#215)
- 拆分 Sm4_crypt_cbc 加解密分块循环降低 Cognitive Complexity (S3776) (#229)
- 降低 SpecialFloatingPointDocumentConverter.GetModifiedJson Cognitive Complexity (S3776) (#240)
- 降低 OptionsBuilder.NormalizePropertyName Cognitive Complexity (S3776) (#242)
- 废弃 HttpJsonResult,统一为 HttpJsonResultData (#250)
Testing
- 消除 EnsureLoaded_ShouldNotThrow 的 Sonar S2699 缺失断言违规 (#97)
- 为 AssemblyResourceProvider 释放测试补充显式断言 (#99)
- 消除 OrmAttributeTests 第17行 Sonar S2701 字面量布尔断言 (#211)
- 消除 OrmAttributeTests 第19行 Sonar S2701 字面量布尔断言 (#212)
- 补充 Helper/TrackId 边界与逆向测试(null/空/类型不匹配/Unicode 往返/AsyncLocal 隔离/异常穿透)
Build
- 串行化测试执行以消除全局状态串扰
Ci
- 忽略 .github 目录的 SonarCloud 分析 (#252)
- 启用 Release 发布流水线
[2.8.3] - 2026-08-05
Testing
- 消除 OrmAttributeTests Sonar S2701 残存的平凡断言 (#92)
[2.8.2] - 2026-07-29
Bug Fixes
- 修复 OrmEntityTests 缺失断言的 Sonar S2699 违规 (#89)
[2.8.1] - 2026-07-29
Styling
- 消除 OrmAttributeTests 的 Sonar S2701 布尔字面量断言违规 (#88)
[2.7.0] - 2026-07-15
Features
- 重命名 Version 为 RowVersion
[2.6.0] - 2026-07-13
Documentation
- 更新 README 补齐密码哈希 KDF 文档
Features
- 新增租户/数据权限/敏感字段/树形/导入导出特性
- 新增下一代密码哈希 KDF
[2.5.2] - 2026-07-08
Bug Fixes
- SHA1/256/512 哈希校验改用常量时间比较
[2.5.1] - 2026-06-09
Bug Fixes
- 修复测试并行冲突和异步时序问题
Styling
- 移除测试文件尾部空行
Build
- 升级 Localization.Abstractions 至 10.0.8
- 升级 Grafana.Loki 并适配压缩 API
- 升级测试框架至 xunit v3
[2.5.0] - 2026-06-09
Bug Fixes
- SM4 兼容 C# 10.0 无符号右移
- 修复 GetNowWithUtc 返回非 UTC Kind
- 修复 ToHttpJsonResultData 转换失败时返回值
Features
- 新增异步释放字典和异步集合扩展
- 增强 BidirectionalDictionary
- ConcurrentLimitedQueue 溢出策略和丢弃通知
- 新增 HashHelper 统一入口和 HashAlgorithmKind
- 各哈希 Helper 新增流式和异步重载
- HMAC Helper 新增重载和验证方法
- 新增类型化 JSON 请求扩展
- 新增源生成、流式异步及错误详情重载
- 文化回退链、格式化错误策略及缺失键追踪
- 新增领域事件、租户组织基类和契约验证器
- 新增 ID 解析、WorkerId 提供者和统计指标
- TimerHelper 支持 TimeProvider 注入
- 新增 TryToHttpJsonResultData 转换诊断
- 新增日志敏感字段脱敏
- 新增 Sensitive 属性脱敏
- 新增 WorkerId 冲突检测与稳定哈希
Refactor
- Disposable 字典增加错误处理,移除终结器
Styling
- 测试代码适配 C# 10.0 语法
Testing
- 集成测试默认跳过,需环境变量启用
- 修复 OptionsBuilder 集合隔离,添加 HttpJsonResult 单元测试
- 新增异步释放字典和异步集合扩展测试
- BidirectionalDictionary 和 ConcurrentLimitedQueue 增强测试
- Disposable 字典错误处理测试
- 新增流式、异步和统一入口测试
- 新增源生成、流式异步和错误详情测试
- 新增高优先级功能测试
- 新增 ID 解析和 Worker 测试
- 新增 TimeProvider 注入测试
Build
- 更新各模块包描述和标签
- 测试项目禁用文档文件生成
- 降级 LangVersion 至 10.0
- 目标框架切换为 net10.0 单目标
- 升级 Localization.Abstractions 至 10.0.0
[2.4.9] - 2026-06-03
Bug Fixes
- 月份时区时间戳未应用时区偏移
[2.4.8] - 2026-06-03
Documentation
- 修复 README 文件 Markdown 格式
Styling
- 修复 TimerHelper XML 文档注释缩进
- 批量修复 C# 代码格式问题
[2.4.7] - 2026-05-30
Bug Fixes
- HmacSha256Helper 补充参数验证
- RsaHelper.SignData 不再静默返回 null
- DisposableDictionary.Dispose(bool) 检查 disposing 参数
- Sm4Helper 标记 ECB 模式方法为 Obsolete
- JsonHelper 简化反序列化 fallback 模式
- LogHelper.Error 移除昂贵的 StackTrace 构造
- HttpJsonResultHelper 日志级别 Fatal 降级为 Error
- NullObject.GetHashCode 增加 null 检查
- Md5Helper 移除静态 MD5 缓存实例,改用 MD5.Create()
- LogConsole 补全标题超长时的边界处理
- LogHandler 修复 GrafanaLoki null 检查与错误日志结构化
- Info(ILogger, Exception) 实际使用传入的 logger 参数
- WarningConsole 用 try/finally 保护 ConsoleColor.Reset
- DisposableAction 用 Interlocked 防止重复执行
- HmacSha256Helper 空字符串改为合法输入,仅拒绝 null
Testing
- RsaHelperTests 适配 SignData 不再返回 null 的新行为
- DisposableDictionaryTests 终结器不再释放值的测试适配
[2.4.6] - 2026-05-12
Bug Fixes
- ResourceManager 线程安全修复
- Async void 修正为 ValueTask
- 修复命令行解析负数参数问题
Refactor
- 加密算法升级
- ConcurrentLimitedQueue 改为组合模式
- CrcHelper 清理静态缓存字段
- 提取超时和响应流辅助类
- 移除 Deserialize 泛型约束
- 移除 ToHttpJsonResultData 泛型约束
- LogOptions.Default 改为共享实例
Testing
- 更新测试适配业务代码变更
- 添加测试集合隔离
[2.4.5] - 2026-05-08
Build
- 迁移解决方案文件为 .slnx 格式
[2.4.4] - 2026-05-08
Bug Fixes
- 修复文档链接地址和语言路径
Documentation
- 精简主 README 为项目概览
- 完善 ORM Entity 模块文档
- 完善 Utility 模块文档
- 添加 Localization 模块文档
[2.4.3] - 2026-05-07
Documentation
- 添加多语言 README 支持 (zh-CN, zh-TW, ja, ko)
- 完善多语言翻译内容
[2.4.2] - 2026-04-28
Ci
- 升级 actions/setup-dotnet@v5 和 action-gh-release@v3 适配 Node.js 24
[2.4.1] - 2026-04-28
Ci
- 迁移到 NuGet Trusted Publishing (OIDC)
- 添加 production 环境以匹配 NuGet Trusted Publishing 策略
[2.2.10] - 2026-04-02
Bug Fixes
- 修正小版本模式匹配以去除冒号
[2.2.9] - 2026-04-02
Features
- 添加支持四到八个属性值的调试消息记录方法
- 添加支持四到八个属性值的日志记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的致命错误消息记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的详细级别消息记录方法
[2.2.8] - 2026-03-22
Features
- 为实体字符串属性添加 MaxLength 验证特性
[2.2.7] - 2026-03-20
Features
- 添加字节序转换扩展方法
Testing
- 添加字节序转换测试
[2.2.6] - 2026-03-19
Bug Fixes
- 完善 Encryption 模块的双语文档注释
Documentation
- 为 TimerHelper 添加双语文档注释
- 为 EnvironmentHelper 和 RuntimePlatformHelper 添加双语文档注释
- 为实体类和过滤器接口添加双语文档注释
- 为所有特性类添加双语文档注释
- 为 Options 项目添加双语文档注释
- 为 Logger 项目添加双语文档注释
- 为 Json 项目添加双语文档注释
- 为 Http.Normalization 项目添加双语文档注释
- 为 Http.Extension 项目添加双语文档注释
- 为 Hash 项目添加双语文档注释
- 为扩展方法添加英文文档注释
- 完善字符串扩展方法的 XML 文档注释
- 为 ArgumentAlreadyException 添加英文注释
- 为双向字典添加英文文档注释
- 为字节序扩展方法添加英文注释
- 为集合扩展方法添加英文文档注释
- 为并发限制队列添加英文注释
- 完善基础类型大小常量的注释文档
- 完善 DirectoryEx...
3.0.0
[3.0.0] - 2026-08-12
Bug Fixes
- 升级 semantic-version 至 v6 并采用 Conventional Commits 默认 pattern
[2.9.1] - 2026-08-12
Bug Fixes
- 修复语义版本识别并补正版本号至 3.0.0
[2.9.0] - 2026-08-12
Bug Fixes
- 修复 DisposableDictionaryTests 缺失断言的 Sonar S2699 违规 (#94)
- 消除 DisposableConcurrentDictionaryTests 的 Sonar S2699 缺失断言违规 (#95)
- 消除 LocalizationServiceTests 的 Sonar S2699 缺失断言违规 (#98)
- 消除 SpanExtensions.WriteBytesWithoutLength 的 Sonar S6640 unsafe 违规 (#100)
- 重命名 NullObject.CompareTo 参数 value 为 obj (#103)
- 修复 ConcurrentLimitedQueue.Limit setter 不直接引用 _limit 字段的 Sonar S4275 违规 (#104)
- 为 CnReg 补传 Regex matchTimeout 消除 Sonar S6444 (#105)
- 抑制 Md5Helper.Hash(byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#107)
- 抑制 Md5Helper.HashWithSalt(string, byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#108)
- 抑制 Md5Helper.Hash(Stream) 的 Sonar S4790 弱哈希告警 (#110)
- 抑制 Md5Helper.HashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#112)
- 抑制 Md5Helper 的 Sonar S4790 弱哈希漏洞告警 (#106)
- 重命名 XxHashHelper 内层 Hash64 unsafe 方法规避 Sonar S3218 shadow (#114)
- 重命名 XxHashHelper 内层 Hash32(string) 消除 Sonar S3218 shadow (#116)
- 重命名内部类型哈希方法 (#117)
- 重命名内部字节哈希方法 (#118)
- 重命名 xxHash 内部 Hash32 以消除外层成员遮蔽 (#115)
- 消除 CrcHelper.Crc64.GetHashCode 的 Sonar S3877 BLOCKER (#109)
- 实现 ResourceManager 的 IDisposable 接口 (#111)
- 重命名 InternalXxHashHelper 公开方法消除 Sonar S3218 遮蔽 (#119)
- 消除 XxHashHelper Hash64Core 的 Sonar S6640 unsafe 违规 (#155)
- 消除 XxHashHelper 的 Sonar S6640 unsafe 代码块违规 (#154)
- 消除 Sha1Helper.ComputeHash(byte[]) 的 Sonar S4790 弱哈希违规 (#162)
- 抑制 Sha1Helper.ComputeHash(Stream) 的 Sonar S4790 弱哈希告警 (#160)
- 抑制 Sha1Helper.ComputeHashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#159)
- 消除 XxHashHelper 32位路径的 Sonar S6640 unsafe 违规 (#158)
- 消除 XxHashHelper ComputeHash32 的 Sonar S6640 unsafe 违规 (#161)
- 抑制 Sha1Helper.ComputeFileHash(string) 的 Sonar S4790 弱哈希告警 (#166)
- 重构 OptionsDebugger.IsWideCharacter 降低 Cognitive Complexity 至阈值内 (#170)
- 修复中性文化资源基础名未剥离文化段
- 消除 OptionsBuilder._ensurePrefixedKeys 的 Sonar S4487 未读取字段告警 (#175)
- 消除 OptionsBuilder._boolFormat 的 Sonar S4487 未读取字段告警 (#188)
- 移除 Hash 项目不再需要的 AllowUnsafeBlocks 编译开关 (#209)
- 移除 NonCryptographicHashAlgorithm.GetHashCode 的 throw 消除 Sonar S3877 (#210)
- JsonHelper 正则替换补 matchTimeout 限制执行时间 (S6444) (#213)
- 抑制 DsaHelper.SignData(byte[], string) 的 Sonar S4790 弱哈希告警 (#214)
- 抑制 DsaHelper(string) 构造函数的 Sonar S4790 弱哈希告警 (#230)
- 抑制 DsaHelper.Make/VerifyData 的 Sonar S4790 弱哈希告警 (#232)
- 钉 SHA 并只传必要 secret 修复 sonar-issues.yml 的 S7635/S7637 安全违规 (#234)
- 抑制 UnicodeJsonEncoder 两个 unsafe override 的 Sonar S6640 告警 (#239)
- 补齐 Logger 参数空校验并扩充测试
- 强化 ORM 属性与实体契约校验
- 补齐 Snowflake 解析校验并扩充工具测试
- SM2/SM4 输入异常统一为 CryptographicException
- 命令行参数拒绝 null 元素
- 集成测试改用 httpbingo 提升稳定性
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- RSA 分块加解密复用缓冲池与切片写入
- MD5 带盐哈希改用增量哈希并简化十六进制编码
- SHA 系列十六进制编码改用 Convert.ToHexString
Documentation
- 更新 QQ 群号
Features
- HttpJsonResult 增加 TrackId/ErrorCode/Type/Time/Extras 字段及链路追踪中间件 (#247)
- 补充加密算法边界与综合测试
- 补充扩展方法边界与综合测试
- 补充哈希算法边界与 HMAC 测试
- 补充 HttpClient 扩展边界与综合测试
- 补充 HttpJsonResult 与 TrackId 中间件边界测试
- 补充 JsonHelper 与编码器边界测试
- 补充资源管理器与本地化测试
- 补充命令行与环境变量选项解析测试
- Disposable 字典补齐释放后访问保护
- 统一 TimerHelper 命名规范并补充 TimeSpan 转换
- 迁移 TimeOffset 测试至新命名
- 支持动态加载程序集的资源发现
- SM2/SM4 异常消息迁移至本地化
- 异常消息迁移至本地化资源
- 异常消息迁移至本地化资源
- 行版本冲突消息迁移至本地化
- 补齐 PUT/PATCH/DELETE 对称重载
- 新增 HttpClientResponse 原始响应 API
Refactor
- 拆分 LogHandler.Create 私有 helper 降低认知复杂度 (#93)
- 拆分 SequenceEqualSameType 降低认知复杂度 (#101)
- 降低 SequenceEqual<T1,T2> 认知复杂度 (#102)
- 降低 CrcHelper.GetCrc32(Stream, byte[], int) 认知复杂度 (#113)
- 拆分 LoadResources baseName 解析降低认知复杂度 (#171)
- 拆分 GetFriendlyTypeName 类型映射表降低认知复杂度 (#172)
- 抽取 TrySetPropertyValue 降低 ApplyDefaultValues 认知复杂度 (#178)
- 拆分 PrintParsedOptions 编排阶段降低认知复杂度 (#180)
- 抽取 TryGetDebugFromOptionsEnvVar 与 TryGetDebugFromRuntimeEnvironment 降低 ShouldEnableDebugOutput 认知复杂度 (#182)
- 抽取辅助方法降低 GetEnvironmentVariables 认知复杂度 (#184)
- 抽取 ExecuteAttemptAsync 降低 SendJsonCoreAsync 认知复杂度 (#187)
- 抽取辅助方法降低 ValidateRequiredOptions 认知复杂度 (#191)
- 抽取 ApplyKeyValuePair 与 ApplySeparatedOption 降低 ConvertToOptionsDictionary 认知复杂度 (#192)
- 抽取 ConvertBoolOptionValue 与 ConvertToTargetType 降低 ConvertOptionValue 认知复杂度 (#195)
- 抽取 ApplyOptions 辅助方法降 Cognitive Complexity (25→≤15) (#197)
- 抽取辅助方法降低 ConvertToStandardFormat 认知复杂度 (42→≤5) (#199)
- 重命名 Sm3Digest.ProcessWord 形参 in_Renamed 为 input 与基类对齐 (#201)
- 抽取辅助方法降低 ToCommandLineString 认知复杂度 (19→≤9) (#203)
- 移除 Sm3Digest.ProcessLength 中恒等的位与掩码 (#204)
- 重命名 Sm3Digest.DoFinal 形参 out_Renamed 为 output 与基类对齐 (#207)
- 重命名 GeneralDigest.BlockUpdate 形参 length 为 inLen 与接口对齐 (#215)
- 拆分 Sm4_crypt_cbc 加解密分块循环降低 Cognitive Complexity (S3776) (#229)
- 降低 SpecialFloatingPointDocumentConverter.GetModifiedJson Cognitive Complexity (S3776) (#240)
- 降低 OptionsBuilder.NormalizePropertyName Cognitive Complexity (S3776) (#242)
- 废弃 HttpJsonResult,统一为 HttpJsonResultData (#250)
Testing
- 消除 EnsureLoaded_ShouldNotThrow 的 Sonar S2699 缺失断言违规 (#97)
- 为 AssemblyResourceProvider 释放测试补充显式断言 (#99)
- 消除 OrmAttributeTests 第17行 Sonar S2701 字面量布尔断言 (#211)
- 消除 OrmAttributeTests 第19行 Sonar S2701 字面量布尔断言 (#212)
- 补充 Helper/TrackId 边界与逆向测试(null/空/类型不匹配/Unicode 往返/AsyncLocal 隔离/异常穿透)
Build
- 串行化测试执行以消除全局状态串扰
Ci
- 忽略 .github 目录的 SonarCloud 分析 (#252)
- 启用 Release 发布流水线
[2.8.3] - 2026-08-05
Testing
- 消除 OrmAttributeTests Sonar S2701 残存的平凡断言 (#92)
[2.8.2] - 2026-07-29
Bug Fixes
- 修复 OrmEntityTests 缺失断言的 Sonar S2699 违规 (#89)
[2.8.1] - 2026-07-29
Styling
- 消除 OrmAttributeTests 的 Sonar S2701 布尔字面量断言违规 (#88)
[2.7.0] - 2026-07-15
Features
- 重命名 Version 为 RowVersion
[2.6.0] - 2026-07-13
Documentation
- 更新 README 补齐密码哈希 KDF 文档
Features
- 新增租户/数据权限/敏感字段/树形/导入导出特性
- 新增下一代密码哈希 KDF
[2.5.2] - 2026-07-08
Bug Fixes
- SHA1/256/512 哈希校验改用常量时间比较
[2.5.1] - 2026-06-09
Bug Fixes
- 修复测试并行冲突和异步时序问题
Styling
- 移除测试文件尾部空行
Build
- 升级 Localization.Abstractions 至 10.0.8
- 升级 Grafana.Loki 并适配压缩 API
- 升级测试框架至 xunit v3
[2.5.0] - 2026-06-09
Bug Fixes
- SM4 兼容 C# 10.0 无符号右移
- 修复 GetNowWithUtc 返回非 UTC Kind
- 修复 ToHttpJsonResultData 转换失败时返回值
Features
- 新增异步释放字典和异步集合扩展
- 增强 BidirectionalDictionary
- ConcurrentLimitedQueue 溢出策略和丢弃通知
- 新增 HashHelper 统一入口和 HashAlgorithmKind
- 各哈希 Helper 新增流式和异步重载
- HMAC Helper 新增重载和验证方法
- 新增类型化 JSON 请求扩展
- 新增源生成、流式异步及错误详情重载
- 文化回退链、格式化错误策略及缺失键追踪
- 新增领域事件、租户组织基类和契约验证器
- 新增 ID 解析、WorkerId 提供者和统计指标
- TimerHelper 支持 TimeProvider 注入
- 新增 TryToHttpJsonResultData 转换诊断
- 新增日志敏感字段脱敏
- 新增 Sensitive 属性脱敏
- 新增 WorkerId 冲突检测与稳定哈希
Refactor
- Disposable 字典增加错误处理,移除终结器
Styling
- 测试代码适配 C# 10.0 语法
Testing
- 集成测试默认跳过,需环境变量启用
- 修复 OptionsBuilder 集合隔离,添加 HttpJsonResult 单元测试
- 新增异步释放字典和异步集合扩展测试
- BidirectionalDictionary 和 ConcurrentLimitedQueue 增强测试
- Disposable 字典错误处理测试
- 新增流式、异步和统一入口测试
- 新增源生成、流式异步和错误详情测试
- 新增高优先级功能测试
- 新增 ID 解析和 Worker 测试
- 新增 TimeProvider 注入测试
Build
- 更新各模块包描述和标签
- 测试项目禁用文档文件生成
- 降级 LangVersion 至 10.0
- 目标框架切换为 net10.0 单目标
- 升级 Localization.Abstractions 至 10.0.0
[2.4.9] - 2026-06-03
Bug Fixes
- 月份时区时间戳未应用时区偏移
[2.4.8] - 2026-06-03
Documentation
- 修复 README 文件 Markdown 格式
Styling
- 修复 TimerHelper XML 文档注释缩进
- 批量修复 C# 代码格式问题
[2.4.7] - 2026-05-30
Bug Fixes
- HmacSha256Helper 补充参数验证
- RsaHelper.SignData 不再静默返回 null
- DisposableDictionary.Dispose(bool) 检查 disposing 参数
- Sm4Helper 标记 ECB 模式方法为 Obsolete
- JsonHelper 简化反序列化 fallback 模式
- LogHelper.Error 移除昂贵的 StackTrace 构造
- HttpJsonResultHelper 日志级别 Fatal 降级为 Error
- NullObject.GetHashCode 增加 null 检查
- Md5Helper 移除静态 MD5 缓存实例,改用 MD5.Create()
- LogConsole 补全标题超长时的边界处理
- LogHandler 修复 GrafanaLoki null 检查与错误日志结构化
- Info(ILogger, Exception) 实际使用传入的 logger 参数
- WarningConsole 用 try/finally 保护 ConsoleColor.Reset
- DisposableAction 用 Interlocked 防止重复执行
- HmacSha256Helper 空字符串改为合法输入,仅拒绝 null
Testing
- RsaHelperTests 适配 SignData 不再返回 null 的新行为
- DisposableDictionaryTests 终结器不再释放值的测试适配
[2.4.6] - 2026-05-12
Bug Fixes
- ResourceManager 线程安全修复
- Async void 修正为 ValueTask
- 修复命令行解析负数参数问题
Refactor
- 加密算法升级
- ConcurrentLimitedQueue 改为组合模式
- CrcHelper 清理静态缓存字段
- 提取超时和响应流辅助类
- 移除 Deserialize 泛型约束
- 移除 ToHttpJsonResultData 泛型约束
- LogOptions.Default 改为共享实例
Testing
- 更新测试适配业务代码变更
- 添加测试集合隔离
[2.4.5] - 2026-05-08
Build
- 迁移解决方案文件为 .slnx 格式
[2.4.4] - 2026-05-08
Bug Fixes
- 修复文档链接地址和语言路径
Documentation
- 精简主 README 为项目概览
- 完善 ORM Entity 模块文档
- 完善 Utility 模块文档
- 添加 Localization 模块文档
[2.4.3] - 2026-05-07
Documentation
- 添加多语言 README 支持 (zh-CN, zh-TW, ja, ko)
- 完善多语言翻译内容
[2.4.2] - 2026-04-28
Ci
- 升级 actions/setup-dotnet@v5 和 action-gh-release@v3 适配 Node.js 24
[2.4.1] - 2026-04-28
Ci
- 迁移到 NuGet Trusted Publishing (OIDC)
- 添加 production 环境以匹配 NuGet Trusted Publishing 策略
[2.2.10] - 2026-04-02
Bug Fixes
- 修正小版本模式匹配以去除冒号
[2.2.9] - 2026-04-02
Features
- 添加支持四到八个属性值的调试消息记录方法
- 添加支持四到八个属性值的日志记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的致命错误消息记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的详细级别消息记录方法
[2.2.8] - 2026-03-22
Features
- 为实体字符串属性添加 MaxLength 验证特性
[2.2.7] - 2026-03-20
Features
- 添加字节序转换扩展方法
Testing
- 添加字节序转换测试
[2.2.6] - 2026-03-19
Bug Fixes
- 完善 Encryption 模块的双语文档注释
Documentation
- 为 TimerHelper 添加双语文档注释
- 为 EnvironmentHelper 和 RuntimePlatformHelper 添加双语文档注释
- 为实体类和过滤器接口添加双语文档注释
- 为所有特性类添加双语文档注释
- 为 Options 项目添加双语文档注释
- 为 Logger 项目添加双语文档注释
- 为 Json 项目添加双语文档注释
- 为 Http.Normalization 项目添加双语文档注释
- 为 Http.Extension 项目添加双语文档注释
- 为 Hash 项目添加双语文档注释
- 为扩展方法添加英文文档注释
- 完善字符串扩展方法的 XML 文档注释
- 为 ArgumentAlreadyException 添加英文注释
- 为双向字典添加英文文档注释
- 为字节序扩展方法添加英文注释
- 为集合扩展方法添加英文文档注释
- 为并发限制队列添加英文注释
- 完善基础类型大小常量的注释文档
- 完善 DirectoryExtensions 的 XML 注释文档
- 为 DisposableConcurrentDictionary 添加英文注释
- 为 DisposableDictionary 添加英文注释...
2.9.1
[2.9.1] - 2026-08-12
Bug Fixes
- 修复语义版本识别并补正版本号至 3.0.0
[2.9.0] - 2026-08-12
Bug Fixes
- 修复 DisposableDictionaryTests 缺失断言的 Sonar S2699 违规 (#94)
- 消除 DisposableConcurrentDictionaryTests 的 Sonar S2699 缺失断言违规 (#95)
- 消除 LocalizationServiceTests 的 Sonar S2699 缺失断言违规 (#98)
- 消除 SpanExtensions.WriteBytesWithoutLength 的 Sonar S6640 unsafe 违规 (#100)
- 重命名 NullObject.CompareTo 参数 value 为 obj (#103)
- 修复 ConcurrentLimitedQueue.Limit setter 不直接引用 _limit 字段的 Sonar S4275 违规 (#104)
- 为 CnReg 补传 Regex matchTimeout 消除 Sonar S6444 (#105)
- 抑制 Md5Helper.Hash(byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#107)
- 抑制 Md5Helper.HashWithSalt(string, byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#108)
- 抑制 Md5Helper.Hash(Stream) 的 Sonar S4790 弱哈希告警 (#110)
- 抑制 Md5Helper.HashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#112)
- 抑制 Md5Helper 的 Sonar S4790 弱哈希漏洞告警 (#106)
- 重命名 XxHashHelper 内层 Hash64 unsafe 方法规避 Sonar S3218 shadow (#114)
- 重命名 XxHashHelper 内层 Hash32(string) 消除 Sonar S3218 shadow (#116)
- 重命名内部类型哈希方法 (#117)
- 重命名内部字节哈希方法 (#118)
- 重命名 xxHash 内部 Hash32 以消除外层成员遮蔽 (#115)
- 消除 CrcHelper.Crc64.GetHashCode 的 Sonar S3877 BLOCKER (#109)
- 实现 ResourceManager 的 IDisposable 接口 (#111)
- 重命名 InternalXxHashHelper 公开方法消除 Sonar S3218 遮蔽 (#119)
- 消除 XxHashHelper Hash64Core 的 Sonar S6640 unsafe 违规 (#155)
- 消除 XxHashHelper 的 Sonar S6640 unsafe 代码块违规 (#154)
- 消除 Sha1Helper.ComputeHash(byte[]) 的 Sonar S4790 弱哈希违规 (#162)
- 抑制 Sha1Helper.ComputeHash(Stream) 的 Sonar S4790 弱哈希告警 (#160)
- 抑制 Sha1Helper.ComputeHashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#159)
- 消除 XxHashHelper 32位路径的 Sonar S6640 unsafe 违规 (#158)
- 消除 XxHashHelper ComputeHash32 的 Sonar S6640 unsafe 违规 (#161)
- 抑制 Sha1Helper.ComputeFileHash(string) 的 Sonar S4790 弱哈希告警 (#166)
- 重构 OptionsDebugger.IsWideCharacter 降低 Cognitive Complexity 至阈值内 (#170)
- 修复中性文化资源基础名未剥离文化段
- 消除 OptionsBuilder._ensurePrefixedKeys 的 Sonar S4487 未读取字段告警 (#175)
- 消除 OptionsBuilder._boolFormat 的 Sonar S4487 未读取字段告警 (#188)
- 移除 Hash 项目不再需要的 AllowUnsafeBlocks 编译开关 (#209)
- 移除 NonCryptographicHashAlgorithm.GetHashCode 的 throw 消除 Sonar S3877 (#210)
- JsonHelper 正则替换补 matchTimeout 限制执行时间 (S6444) (#213)
- 抑制 DsaHelper.SignData(byte[], string) 的 Sonar S4790 弱哈希告警 (#214)
- 抑制 DsaHelper(string) 构造函数的 Sonar S4790 弱哈希告警 (#230)
- 抑制 DsaHelper.Make/VerifyData 的 Sonar S4790 弱哈希告警 (#232)
- 钉 SHA 并只传必要 secret 修复 sonar-issues.yml 的 S7635/S7637 安全违规 (#234)
- 抑制 UnicodeJsonEncoder 两个 unsafe override 的 Sonar S6640 告警 (#239)
- 补齐 Logger 参数空校验并扩充测试
- 强化 ORM 属性与实体契约校验
- 补齐 Snowflake 解析校验并扩充工具测试
- SM2/SM4 输入异常统一为 CryptographicException
- 命令行参数拒绝 null 元素
- 集成测试改用 httpbingo 提升稳定性
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- RSA 分块加解密复用缓冲池与切片写入
- MD5 带盐哈希改用增量哈希并简化十六进制编码
- SHA 系列十六进制编码改用 Convert.ToHexString
Documentation
- 更新 QQ 群号
Features
- HttpJsonResult 增加 TrackId/ErrorCode/Type/Time/Extras 字段及链路追踪中间件 (#247)
- 补充加密算法边界与综合测试
- 补充扩展方法边界与综合测试
- 补充哈希算法边界与 HMAC 测试
- 补充 HttpClient 扩展边界与综合测试
- 补充 HttpJsonResult 与 TrackId 中间件边界测试
- 补充 JsonHelper 与编码器边界测试
- 补充资源管理器与本地化测试
- 补充命令行与环境变量选项解析测试
- Disposable 字典补齐释放后访问保护
- 统一 TimerHelper 命名规范并补充 TimeSpan 转换
- 迁移 TimeOffset 测试至新命名
- 支持动态加载程序集的资源发现
- SM2/SM4 异常消息迁移至本地化
- 异常消息迁移至本地化资源
- 异常消息迁移至本地化资源
- 行版本冲突消息迁移至本地化
- 补齐 PUT/PATCH/DELETE 对称重载
- 新增 HttpClientResponse 原始响应 API
Refactor
- 拆分 LogHandler.Create 私有 helper 降低认知复杂度 (#93)
- 拆分 SequenceEqualSameType 降低认知复杂度 (#101)
- 降低 SequenceEqual<T1,T2> 认知复杂度 (#102)
- 降低 CrcHelper.GetCrc32(Stream, byte[], int) 认知复杂度 (#113)
- 拆分 LoadResources baseName 解析降低认知复杂度 (#171)
- 拆分 GetFriendlyTypeName 类型映射表降低认知复杂度 (#172)
- 抽取 TrySetPropertyValue 降低 ApplyDefaultValues 认知复杂度 (#178)
- 拆分 PrintParsedOptions 编排阶段降低认知复杂度 (#180)
- 抽取 TryGetDebugFromOptionsEnvVar 与 TryGetDebugFromRuntimeEnvironment 降低 ShouldEnableDebugOutput 认知复杂度 (#182)
- 抽取辅助方法降低 GetEnvironmentVariables 认知复杂度 (#184)
- 抽取 ExecuteAttemptAsync 降低 SendJsonCoreAsync 认知复杂度 (#187)
- 抽取辅助方法降低 ValidateRequiredOptions 认知复杂度 (#191)
- 抽取 ApplyKeyValuePair 与 ApplySeparatedOption 降低 ConvertToOptionsDictionary 认知复杂度 (#192)
- 抽取 ConvertBoolOptionValue 与 ConvertToTargetType 降低 ConvertOptionValue 认知复杂度 (#195)
- 抽取 ApplyOptions 辅助方法降 Cognitive Complexity (25→≤15) (#197)
- 抽取辅助方法降低 ConvertToStandardFormat 认知复杂度 (42→≤5) (#199)
- 重命名 Sm3Digest.ProcessWord 形参 in_Renamed 为 input 与基类对齐 (#201)
- 抽取辅助方法降低 ToCommandLineString 认知复杂度 (19→≤9) (#203)
- 移除 Sm3Digest.ProcessLength 中恒等的位与掩码 (#204)
- 重命名 Sm3Digest.DoFinal 形参 out_Renamed 为 output 与基类对齐 (#207)
- 重命名 GeneralDigest.BlockUpdate 形参 length 为 inLen 与接口对齐 (#215)
- 拆分 Sm4_crypt_cbc 加解密分块循环降低 Cognitive Complexity (S3776) (#229)
- 降低 SpecialFloatingPointDocumentConverter.GetModifiedJson Cognitive Complexity (S3776) (#240)
- 降低 OptionsBuilder.NormalizePropertyName Cognitive Complexity (S3776) (#242)
- 废弃 HttpJsonResult,统一为 HttpJsonResultData (#250)
Testing
- 消除 EnsureLoaded_ShouldNotThrow 的 Sonar S2699 缺失断言违规 (#97)
- 为 AssemblyResourceProvider 释放测试补充显式断言 (#99)
- 消除 OrmAttributeTests 第17行 Sonar S2701 字面量布尔断言 (#211)
- 消除 OrmAttributeTests 第19行 Sonar S2701 字面量布尔断言 (#212)
- 补充 Helper/TrackId 边界与逆向测试(null/空/类型不匹配/Unicode 往返/AsyncLocal 隔离/异常穿透)
Build
- 串行化测试执行以消除全局状态串扰
Ci
- 忽略 .github 目录的 SonarCloud 分析 (#252)
- 启用 Release 发布流水线
[2.8.3] - 2026-08-05
Testing
- 消除 OrmAttributeTests Sonar S2701 残存的平凡断言 (#92)
[2.8.2] - 2026-07-29
Bug Fixes
- 修复 OrmEntityTests 缺失断言的 Sonar S2699 违规 (#89)
[2.8.1] - 2026-07-29
Styling
- 消除 OrmAttributeTests 的 Sonar S2701 布尔字面量断言违规 (#88)
[2.7.0] - 2026-07-15
Features
- 重命名 Version 为 RowVersion
[2.6.0] - 2026-07-13
Documentation
- 更新 README 补齐密码哈希 KDF 文档
Features
- 新增租户/数据权限/敏感字段/树形/导入导出特性
- 新增下一代密码哈希 KDF
[2.5.2] - 2026-07-08
Bug Fixes
- SHA1/256/512 哈希校验改用常量时间比较
[2.5.1] - 2026-06-09
Bug Fixes
- 修复测试并行冲突和异步时序问题
Styling
- 移除测试文件尾部空行
Build
- 升级 Localization.Abstractions 至 10.0.8
- 升级 Grafana.Loki 并适配压缩 API
- 升级测试框架至 xunit v3
[2.5.0] - 2026-06-09
Bug Fixes
- SM4 兼容 C# 10.0 无符号右移
- 修复 GetNowWithUtc 返回非 UTC Kind
- 修复 ToHttpJsonResultData 转换失败时返回值
Features
- 新增异步释放字典和异步集合扩展
- 增强 BidirectionalDictionary
- ConcurrentLimitedQueue 溢出策略和丢弃通知
- 新增 HashHelper 统一入口和 HashAlgorithmKind
- 各哈希 Helper 新增流式和异步重载
- HMAC Helper 新增重载和验证方法
- 新增类型化 JSON 请求扩展
- 新增源生成、流式异步及错误详情重载
- 文化回退链、格式化错误策略及缺失键追踪
- 新增领域事件、租户组织基类和契约验证器
- 新增 ID 解析、WorkerId 提供者和统计指标
- TimerHelper 支持 TimeProvider 注入
- 新增 TryToHttpJsonResultData 转换诊断
- 新增日志敏感字段脱敏
- 新增 Sensitive 属性脱敏
- 新增 WorkerId 冲突检测与稳定哈希
Refactor
- Disposable 字典增加错误处理,移除终结器
Styling
- 测试代码适配 C# 10.0 语法
Testing
- 集成测试默认跳过,需环境变量启用
- 修复 OptionsBuilder 集合隔离,添加 HttpJsonResult 单元测试
- 新增异步释放字典和异步集合扩展测试
- BidirectionalDictionary 和 ConcurrentLimitedQueue 增强测试
- Disposable 字典错误处理测试
- 新增流式、异步和统一入口测试
- 新增源生成、流式异步和错误详情测试
- 新增高优先级功能测试
- 新增 ID 解析和 Worker 测试
- 新增 TimeProvider 注入测试
Build
- 更新各模块包描述和标签
- 测试项目禁用文档文件生成
- 降级 LangVersion 至 10.0
- 目标框架切换为 net10.0 单目标
- 升级 Localization.Abstractions 至 10.0.0
[2.4.9] - 2026-06-03
Bug Fixes
- 月份时区时间戳未应用时区偏移
[2.4.8] - 2026-06-03
Documentation
- 修复 README 文件 Markdown 格式
Styling
- 修复 TimerHelper XML 文档注释缩进
- 批量修复 C# 代码格式问题
[2.4.7] - 2026-05-30
Bug Fixes
- HmacSha256Helper 补充参数验证
- RsaHelper.SignData 不再静默返回 null
- DisposableDictionary.Dispose(bool) 检查 disposing 参数
- Sm4Helper 标记 ECB 模式方法为 Obsolete
- JsonHelper 简化反序列化 fallback 模式
- LogHelper.Error 移除昂贵的 StackTrace 构造
- HttpJsonResultHelper 日志级别 Fatal 降级为 Error
- NullObject.GetHashCode 增加 null 检查
- Md5Helper 移除静态 MD5 缓存实例,改用 MD5.Create()
- LogConsole 补全标题超长时的边界处理
- LogHandler 修复 GrafanaLoki null 检查与错误日志结构化
- Info(ILogger, Exception) 实际使用传入的 logger 参数
- WarningConsole 用 try/finally 保护 ConsoleColor.Reset
- DisposableAction 用 Interlocked 防止重复执行
- HmacSha256Helper 空字符串改为合法输入,仅拒绝 null
Testing
- RsaHelperTests 适配 SignData 不再返回 null 的新行为
- DisposableDictionaryTests 终结器不再释放值的测试适配
[2.4.6] - 2026-05-12
Bug Fixes
- ResourceManager 线程安全修复
- Async void 修正为 ValueTask
- 修复命令行解析负数参数问题
Refactor
- 加密算法升级
- ConcurrentLimitedQueue 改为组合模式
- CrcHelper 清理静态缓存字段
- 提取超时和响应流辅助类
- 移除 Deserialize 泛型约束
- 移除 ToHttpJsonResultData 泛型约束
- LogOptions.Default 改为共享实例
Testing
- 更新测试适配业务代码变更
- 添加测试集合隔离
[2.4.5] - 2026-05-08
Build
- 迁移解决方案文件为 .slnx 格式
[2.4.4] - 2026-05-08
Bug Fixes
- 修复文档链接地址和语言路径
Documentation
- 精简主 README 为项目概览
- 完善 ORM Entity 模块文档
- 完善 Utility 模块文档
- 添加 Localization 模块文档
[2.4.3] - 2026-05-07
Documentation
- 添加多语言 README 支持 (zh-CN, zh-TW, ja, ko)
- 完善多语言翻译内容
[2.4.2] - 2026-04-28
Ci
- 升级 actions/setup-dotnet@v5 和 action-gh-release@v3 适配 Node.js 24
[2.4.1] - 2026-04-28
Ci
- 迁移到 NuGet Trusted Publishing (OIDC)
- 添加 production 环境以匹配 NuGet Trusted Publishing 策略
[2.2.10] - 2026-04-02
Bug Fixes
- 修正小版本模式匹配以去除冒号
[2.2.9] - 2026-04-02
Features
- 添加支持四到八个属性值的调试消息记录方法
- 添加支持四到八个属性值的日志记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的致命错误消息记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的详细级别消息记录方法
[2.2.8] - 2026-03-22
Features
- 为实体字符串属性添加 MaxLength 验证特性
[2.2.7] - 2026-03-20
Features
- 添加字节序转换扩展方法
Testing
- 添加字节序转换测试
[2.2.6] - 2026-03-19
Bug Fixes
- 完善 Encryption 模块的双语文档注释
Documentation
- 为 TimerHelper 添加双语文档注释
- 为 EnvironmentHelper 和 RuntimePlatformHelper 添加双语文档注释
- 为实体类和过滤器接口添加双语文档注释
- 为所有特性类添加双语文档注释
- 为 Options 项目添加双语文档注释
- 为 Logger 项目添加双语文档注释
- 为 Json 项目添加双语文档注释
- 为 Http.Normalization 项目添加双语文档注释
- 为 Http.Extension 项目添加双语文档注释
- 为 Hash 项目添加双语文档注释
- 为扩展方法添加英文文档注释
- 完善字符串扩展方法的 XML 文档注释
- 为 ArgumentAlreadyException 添加英文注释
- 为双向字典添加英文文档注释
- 为字节序扩展方法添加英文注释
- 为集合扩展方法添加英文文档注释
- 为并发限制队列添加英文注释
- 完善基础类型大小常量的注释文档
- 完善 DirectoryExtensions 的 XML 注释文档
- 为 DisposableConcurrentDictionary 添加英文注释
- 为 DisposableDictionary 添加英文注释
- 为表达式扩展方法添加英文文档注释
- 为扩展方法添加英文注释以支持国际化
- 为 IEnumerableExtensions 添加双语文档注释
- 为 NullableDictionary 添加双语文档...
2.9.0
[2.9.0] - 2026-08-12
Bug Fixes
- 修复 DisposableDictionaryTests 缺失断言的 Sonar S2699 违规 (#94)
- 消除 DisposableConcurrentDictionaryTests 的 Sonar S2699 缺失断言违规 (#95)
- 消除 LocalizationServiceTests 的 Sonar S2699 缺失断言违规 (#98)
- 消除 SpanExtensions.WriteBytesWithoutLength 的 Sonar S6640 unsafe 违规 (#100)
- 重命名 NullObject.CompareTo 参数 value 为 obj (#103)
- 修复 ConcurrentLimitedQueue.Limit setter 不直接引用 _limit 字段的 Sonar S4275 违规 (#104)
- 为 CnReg 补传 Regex matchTimeout 消除 Sonar S6444 (#105)
- 抑制 Md5Helper.Hash(byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#107)
- 抑制 Md5Helper.HashWithSalt(string, byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#108)
- 抑制 Md5Helper.Hash(Stream) 的 Sonar S4790 弱哈希告警 (#110)
- 抑制 Md5Helper.HashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#112)
- 抑制 Md5Helper 的 Sonar S4790 弱哈希漏洞告警 (#106)
- 重命名 XxHashHelper 内层 Hash64 unsafe 方法规避 Sonar S3218 shadow (#114)
- 重命名 XxHashHelper 内层 Hash32(string) 消除 Sonar S3218 shadow (#116)
- 重命名内部类型哈希方法 (#117)
- 重命名内部字节哈希方法 (#118)
- 重命名 xxHash 内部 Hash32 以消除外层成员遮蔽 (#115)
- 消除 CrcHelper.Crc64.GetHashCode 的 Sonar S3877 BLOCKER (#109)
- 实现 ResourceManager 的 IDisposable 接口 (#111)
- 重命名 InternalXxHashHelper 公开方法消除 Sonar S3218 遮蔽 (#119)
- 消除 XxHashHelper Hash64Core 的 Sonar S6640 unsafe 违规 (#155)
- 消除 XxHashHelper 的 Sonar S6640 unsafe 代码块违规 (#154)
- 消除 Sha1Helper.ComputeHash(byte[]) 的 Sonar S4790 弱哈希违规 (#162)
- 抑制 Sha1Helper.ComputeHash(Stream) 的 Sonar S4790 弱哈希告警 (#160)
- 抑制 Sha1Helper.ComputeHashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#159)
- 消除 XxHashHelper 32位路径的 Sonar S6640 unsafe 违规 (#158)
- 消除 XxHashHelper ComputeHash32 的 Sonar S6640 unsafe 违规 (#161)
- 抑制 Sha1Helper.ComputeFileHash(string) 的 Sonar S4790 弱哈希告警 (#166)
- 重构 OptionsDebugger.IsWideCharacter 降低 Cognitive Complexity 至阈值内 (#170)
- 修复中性文化资源基础名未剥离文化段
- 消除 OptionsBuilder._ensurePrefixedKeys 的 Sonar S4487 未读取字段告警 (#175)
- 消除 OptionsBuilder._boolFormat 的 Sonar S4487 未读取字段告警 (#188)
- 移除 Hash 项目不再需要的 AllowUnsafeBlocks 编译开关 (#209)
- 移除 NonCryptographicHashAlgorithm.GetHashCode 的 throw 消除 Sonar S3877 (#210)
- JsonHelper 正则替换补 matchTimeout 限制执行时间 (S6444) (#213)
- 抑制 DsaHelper.SignData(byte[], string) 的 Sonar S4790 弱哈希告警 (#214)
- 抑制 DsaHelper(string) 构造函数的 Sonar S4790 弱哈希告警 (#230)
- 抑制 DsaHelper.Make/VerifyData 的 Sonar S4790 弱哈希告警 (#232)
- 钉 SHA 并只传必要 secret 修复 sonar-issues.yml 的 S7635/S7637 安全违规 (#234)
- 抑制 UnicodeJsonEncoder 两个 unsafe override 的 Sonar S6640 告警 (#239)
- 补齐 Logger 参数空校验并扩充测试
- 强化 ORM 属性与实体契约校验
- 补齐 Snowflake 解析校验并扩充工具测试
- SM2/SM4 输入异常统一为 CryptographicException
- 命令行参数拒绝 null 元素
- 集成测试改用 httpbingo 提升稳定性
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- Using 声明改为带大括号的 using 语句
- RSA 分块加解密复用缓冲池与切片写入
- MD5 带盐哈希改用增量哈希并简化十六进制编码
- SHA 系列十六进制编码改用 Convert.ToHexString
Documentation
- 更新 QQ 群号
Features
- HttpJsonResult 增加 TrackId/ErrorCode/Type/Time/Extras 字段及链路追踪中间件 (#247)
- 补充加密算法边界与综合测试
- 补充扩展方法边界与综合测试
- 补充哈希算法边界与 HMAC 测试
- 补充 HttpClient 扩展边界与综合测试
- 补充 HttpJsonResult 与 TrackId 中间件边界测试
- 补充 JsonHelper 与编码器边界测试
- 补充资源管理器与本地化测试
- 补充命令行与环境变量选项解析测试
- Disposable 字典补齐释放后访问保护
- 统一 TimerHelper 命名规范并补充 TimeSpan 转换
- 迁移 TimeOffset 测试至新命名
- 支持动态加载程序集的资源发现
- SM2/SM4 异常消息迁移至本地化
- 异常消息迁移至本地化资源
- 异常消息迁移至本地化资源
- 行版本冲突消息迁移至本地化
- 补齐 PUT/PATCH/DELETE 对称重载
- 新增 HttpClientResponse 原始响应 API
Refactor
- 拆分 LogHandler.Create 私有 helper 降低认知复杂度 (#93)
- 拆分 SequenceEqualSameType 降低认知复杂度 (#101)
- 降低 SequenceEqual<T1,T2> 认知复杂度 (#102)
- 降低 CrcHelper.GetCrc32(Stream, byte[], int) 认知复杂度 (#113)
- 拆分 LoadResources baseName 解析降低认知复杂度 (#171)
- 拆分 GetFriendlyTypeName 类型映射表降低认知复杂度 (#172)
- 抽取 TrySetPropertyValue 降低 ApplyDefaultValues 认知复杂度 (#178)
- 拆分 PrintParsedOptions 编排阶段降低认知复杂度 (#180)
- 抽取 TryGetDebugFromOptionsEnvVar 与 TryGetDebugFromRuntimeEnvironment 降低 ShouldEnableDebugOutput 认知复杂度 (#182)
- 抽取辅助方法降低 GetEnvironmentVariables 认知复杂度 (#184)
- 抽取 ExecuteAttemptAsync 降低 SendJsonCoreAsync 认知复杂度 (#187)
- 抽取辅助方法降低 ValidateRequiredOptions 认知复杂度 (#191)
- 抽取 ApplyKeyValuePair 与 ApplySeparatedOption 降低 ConvertToOptionsDictionary 认知复杂度 (#192)
- 抽取 ConvertBoolOptionValue 与 ConvertToTargetType 降低 ConvertOptionValue 认知复杂度 (#195)
- 抽取 ApplyOptions 辅助方法降 Cognitive Complexity (25→≤15) (#197)
- 抽取辅助方法降低 ConvertToStandardFormat 认知复杂度 (42→≤5) (#199)
- 重命名 Sm3Digest.ProcessWord 形参 in_Renamed 为 input 与基类对齐 (#201)
- 抽取辅助方法降低 ToCommandLineString 认知复杂度 (19→≤9) (#203)
- 移除 Sm3Digest.ProcessLength 中恒等的位与掩码 (#204)
- 重命名 Sm3Digest.DoFinal 形参 out_Renamed 为 output 与基类对齐 (#207)
- 重命名 GeneralDigest.BlockUpdate 形参 length 为 inLen 与接口对齐 (#215)
- 拆分 Sm4_crypt_cbc 加解密分块循环降低 Cognitive Complexity (S3776) (#229)
- 降低 SpecialFloatingPointDocumentConverter.GetModifiedJson Cognitive Complexity (S3776) (#240)
- 降低 OptionsBuilder.NormalizePropertyName Cognitive Complexity (S3776) (#242)
- 废弃 HttpJsonResult,统一为 HttpJsonResultData (#250)
Testing
- 消除 EnsureLoaded_ShouldNotThrow 的 Sonar S2699 缺失断言违规 (#97)
- 为 AssemblyResourceProvider 释放测试补充显式断言 (#99)
- 消除 OrmAttributeTests 第17行 Sonar S2701 字面量布尔断言 (#211)
- 消除 OrmAttributeTests 第19行 Sonar S2701 字面量布尔断言 (#212)
- 补充 Helper/TrackId 边界与逆向测试(null/空/类型不匹配/Unicode 往返/AsyncLocal 隔离/异常穿透)
Build
- 串行化测试执行以消除全局状态串扰
Ci
- 忽略 .github 目录的 SonarCloud 分析 (#252)
- 启用 Release 发布流水线
[2.8.3] - 2026-08-05
Testing
- 消除 OrmAttributeTests Sonar S2701 残存的平凡断言 (#92)
[2.8.2] - 2026-07-29
Bug Fixes
- 修复 OrmEntityTests 缺失断言的 Sonar S2699 违规 (#89)
[2.8.1] - 2026-07-29
Styling
- 消除 OrmAttributeTests 的 Sonar S2701 布尔字面量断言违规 (#88)
[2.7.0] - 2026-07-15
Features
- 重命名 Version 为 RowVersion
[2.6.0] - 2026-07-13
Documentation
- 更新 README 补齐密码哈希 KDF 文档
Features
- 新增租户/数据权限/敏感字段/树形/导入导出特性
- 新增下一代密码哈希 KDF
[2.5.2] - 2026-07-08
Bug Fixes
- SHA1/256/512 哈希校验改用常量时间比较
[2.5.1] - 2026-06-09
Bug Fixes
- 修复测试并行冲突和异步时序问题
Styling
- 移除测试文件尾部空行
Build
- 升级 Localization.Abstractions 至 10.0.8
- 升级 Grafana.Loki 并适配压缩 API
- 升级测试框架至 xunit v3
[2.5.0] - 2026-06-09
Bug Fixes
- SM4 兼容 C# 10.0 无符号右移
- 修复 GetNowWithUtc 返回非 UTC Kind
- 修复 ToHttpJsonResultData 转换失败时返回值
Features
- 新增异步释放字典和异步集合扩展
- 增强 BidirectionalDictionary
- ConcurrentLimitedQueue 溢出策略和丢弃通知
- 新增 HashHelper 统一入口和 HashAlgorithmKind
- 各哈希 Helper 新增流式和异步重载
- HMAC Helper 新增重载和验证方法
- 新增类型化 JSON 请求扩展
- 新增源生成、流式异步及错误详情重载
- 文化回退链、格式化错误策略及缺失键追踪
- 新增领域事件、租户组织基类和契约验证器
- 新增 ID 解析、WorkerId 提供者和统计指标
- TimerHelper 支持 TimeProvider 注入
- 新增 TryToHttpJsonResultData 转换诊断
- 新增日志敏感字段脱敏
- 新增 Sensitive 属性脱敏
- 新增 WorkerId 冲突检测与稳定哈希
Refactor
- Disposable 字典增加错误处理,移除终结器
Styling
- 测试代码适配 C# 10.0 语法
Testing
- 集成测试默认跳过,需环境变量启用
- 修复 OptionsBuilder 集合隔离,添加 HttpJsonResult 单元测试
- 新增异步释放字典和异步集合扩展测试
- BidirectionalDictionary 和 ConcurrentLimitedQueue 增强测试
- Disposable 字典错误处理测试
- 新增流式、异步和统一入口测试
- 新增源生成、流式异步和错误详情测试
- 新增高优先级功能测试
- 新增 ID 解析和 Worker 测试
- 新增 TimeProvider 注入测试
Build
- 更新各模块包描述和标签
- 测试项目禁用文档文件生成
- 降级 LangVersion 至 10.0
- 目标框架切换为 net10.0 单目标
- 升级 Localization.Abstractions 至 10.0.0
[2.4.9] - 2026-06-03
Bug Fixes
- 月份时区时间戳未应用时区偏移
[2.4.8] - 2026-06-03
Documentation
- 修复 README 文件 Markdown 格式
Styling
- 修复 TimerHelper XML 文档注释缩进
- 批量修复 C# 代码格式问题
[2.4.7] - 2026-05-30
Bug Fixes
- HmacSha256Helper 补充参数验证
- RsaHelper.SignData 不再静默返回 null
- DisposableDictionary.Dispose(bool) 检查 disposing 参数
- Sm4Helper 标记 ECB 模式方法为 Obsolete
- JsonHelper 简化反序列化 fallback 模式
- LogHelper.Error 移除昂贵的 StackTrace 构造
- HttpJsonResultHelper 日志级别 Fatal 降级为 Error
- NullObject.GetHashCode 增加 null 检查
- Md5Helper 移除静态 MD5 缓存实例,改用 MD5.Create()
- LogConsole 补全标题超长时的边界处理
- LogHandler 修复 GrafanaLoki null 检查与错误日志结构化
- Info(ILogger, Exception) 实际使用传入的 logger 参数
- WarningConsole 用 try/finally 保护 ConsoleColor.Reset
- DisposableAction 用 Interlocked 防止重复执行
- HmacSha256Helper 空字符串改为合法输入,仅拒绝 null
Testing
- RsaHelperTests 适配 SignData 不再返回 null 的新行为
- DisposableDictionaryTests 终结器不再释放值的测试适配
[2.4.6] - 2026-05-12
Bug Fixes
- ResourceManager 线程安全修复
- Async void 修正为 ValueTask
- 修复命令行解析负数参数问题
Refactor
- 加密算法升级
- ConcurrentLimitedQueue 改为组合模式
- CrcHelper 清理静态缓存字段
- 提取超时和响应流辅助类
- 移除 Deserialize 泛型约束
- 移除 ToHttpJsonResultData 泛型约束
- LogOptions.Default 改为共享实例
Testing
- 更新测试适配业务代码变更
- 添加测试集合隔离
[2.4.5] - 2026-05-08
Build
- 迁移解决方案文件为 .slnx 格式
[2.4.4] - 2026-05-08
Bug Fixes
- 修复文档链接地址和语言路径
Documentation
- 精简主 README 为项目概览
- 完善 ORM Entity 模块文档
- 完善 Utility 模块文档
- 添加 Localization 模块文档
[2.4.3] - 2026-05-07
Documentation
- 添加多语言 README 支持 (zh-CN, zh-TW, ja, ko)
- 完善多语言翻译内容
[2.4.2] - 2026-04-28
Ci
- 升级 actions/setup-dotnet@v5 和 action-gh-release@v3 适配 Node.js 24
[2.4.1] - 2026-04-28
Ci
- 迁移到 NuGet Trusted Publishing (OIDC)
- 添加 production 环境以匹配 NuGet Trusted Publishing 策略
[2.2.10] - 2026-04-02
Bug Fixes
- 修正小版本模式匹配以去除冒号
[2.2.9] - 2026-04-02
Features
- 添加支持四到八个属性值的调试消息记录方法
- 添加支持四到八个属性值的日志记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的致命错误消息记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的详细级别消息记录方法
[2.2.8] - 2026-03-22
Features
- 为实体字符串属性添加 MaxLength 验证特性
[2.2.7] - 2026-03-20
Features
- 添加字节序转换扩展方法
Testing
- 添加字节序转换测试
[2.2.6] - 2026-03-19
Bug Fixes
- 完善 Encryption 模块的双语文档注释
Documentation
- 为 TimerHelper 添加双语文档注释
- 为 EnvironmentHelper 和 RuntimePlatformHelper 添加双语文档注释
- 为实体类和过滤器接口添加双语文档注释
- 为所有特性类添加双语文档注释
- 为 Options 项目添加双语文档注释
- 为 Logger 项目添加双语文档注释
- 为 Json 项目添加双语文档注释
- 为 Http.Normalization 项目添加双语文档注释
- 为 Http.Extension 项目添加双语文档注释
- 为 Hash 项目添加双语文档注释
- 为扩展方法添加英文文档注释
- 完善字符串扩展方法的 XML 文档注释
- 为 ArgumentAlreadyException 添加英文注释
- 为双向字典添加英文文档注释
- 为字节序扩展方法添加英文注释
- 为集合扩展方法添加英文文档注释
- 为并发限制队列添加英文注释
- 完善基础类型大小常量的注释文档
- 完善 DirectoryExtensions 的 XML 注释文档
- 为 DisposableConcurrentDictionary 添加英文注释
- 为 DisposableDictionary 添加英文注释
- 为表达式扩展方法添加英文文档注释
- 为扩展方法添加英文注释以支持国际化
- 为 IEnumerableExtensions 添加双语文档注释
- 为 NullableDictionary 添加双语文档注释
- 为 SequenceReaderExtensions 添加双语文档注释
- 为 SpanExtensions.BigEn...
2.8.3
[2.8.3] - 2026-08-05
Testing
- 消除 OrmAttributeTests Sonar S2701 残存的平凡断言 (#92)
[2.8.2] - 2026-07-29
Bug Fixes
- 修复 OrmEntityTests 缺失断言的 Sonar S2699 违规 (#89)
[2.8.1] - 2026-07-29
Styling
- 消除 OrmAttributeTests 的 Sonar S2701 布尔字面量断言违规 (#88)
[2.7.0] - 2026-07-15
Features
- 重命名 Version 为 RowVersion
[2.6.0] - 2026-07-13
Documentation
- 更新 README 补齐密码哈希 KDF 文档
Features
- 新增租户/数据权限/敏感字段/树形/导入导出特性
- 新增下一代密码哈希 KDF
[2.5.2] - 2026-07-08
Bug Fixes
- SHA1/256/512 哈希校验改用常量时间比较
[2.5.1] - 2026-06-09
Bug Fixes
- 修复测试并行冲突和异步时序问题
Styling
- 移除测试文件尾部空行
Build
- 升级 Localization.Abstractions 至 10.0.8
- 升级 Grafana.Loki 并适配压缩 API
- 升级测试框架至 xunit v3
[2.5.0] - 2026-06-09
Bug Fixes
- SM4 兼容 C# 10.0 无符号右移
- 修复 GetNowWithUtc 返回非 UTC Kind
- 修复 ToHttpJsonResultData 转换失败时返回值
Features
- 新增异步释放字典和异步集合扩展
- 增强 BidirectionalDictionary
- ConcurrentLimitedQueue 溢出策略和丢弃通知
- 新增 HashHelper 统一入口和 HashAlgorithmKind
- 各哈希 Helper 新增流式和异步重载
- HMAC Helper 新增重载和验证方法
- 新增类型化 JSON 请求扩展
- 新增源生成、流式异步及错误详情重载
- 文化回退链、格式化错误策略及缺失键追踪
- 新增领域事件、租户组织基类和契约验证器
- 新增 ID 解析、WorkerId 提供者和统计指标
- TimerHelper 支持 TimeProvider 注入
- 新增 TryToHttpJsonResultData 转换诊断
- 新增日志敏感字段脱敏
- 新增 Sensitive 属性脱敏
- 新增 WorkerId 冲突检测与稳定哈希
Refactor
- Disposable 字典增加错误处理,移除终结器
Styling
- 测试代码适配 C# 10.0 语法
Testing
- 集成测试默认跳过,需环境变量启用
- 修复 OptionsBuilder 集合隔离,添加 HttpJsonResult 单元测试
- 新增异步释放字典和异步集合扩展测试
- BidirectionalDictionary 和 ConcurrentLimitedQueue 增强测试
- Disposable 字典错误处理测试
- 新增流式、异步和统一入口测试
- 新增源生成、流式异步和错误详情测试
- 新增高优先级功能测试
- 新增 ID 解析和 Worker 测试
- 新增 TimeProvider 注入测试
Build
- 更新各模块包描述和标签
- 测试项目禁用文档文件生成
- 降级 LangVersion 至 10.0
- 目标框架切换为 net10.0 单目标
- 升级 Localization.Abstractions 至 10.0.0
[2.4.9] - 2026-06-03
Bug Fixes
- 月份时区时间戳未应用时区偏移
[2.4.8] - 2026-06-03
Documentation
- 修复 README 文件 Markdown 格式
Styling
- 修复 TimerHelper XML 文档注释缩进
- 批量修复 C# 代码格式问题
[2.4.7] - 2026-05-30
Bug Fixes
- HmacSha256Helper 补充参数验证
- RsaHelper.SignData 不再静默返回 null
- DisposableDictionary.Dispose(bool) 检查 disposing 参数
- Sm4Helper 标记 ECB 模式方法为 Obsolete
- JsonHelper 简化反序列化 fallback 模式
- LogHelper.Error 移除昂贵的 StackTrace 构造
- HttpJsonResultHelper 日志级别 Fatal 降级为 Error
- NullObject.GetHashCode 增加 null 检查
- Md5Helper 移除静态 MD5 缓存实例,改用 MD5.Create()
- LogConsole 补全标题超长时的边界处理
- LogHandler 修复 GrafanaLoki null 检查与错误日志结构化
- Info(ILogger, Exception) 实际使用传入的 logger 参数
- WarningConsole 用 try/finally 保护 ConsoleColor.Reset
- DisposableAction 用 Interlocked 防止重复执行
- HmacSha256Helper 空字符串改为合法输入,仅拒绝 null
Testing
- RsaHelperTests 适配 SignData 不再返回 null 的新行为
- DisposableDictionaryTests 终结器不再释放值的测试适配
[2.4.6] - 2026-05-12
Bug Fixes
- ResourceManager 线程安全修复
- Async void 修正为 ValueTask
- 修复命令行解析负数参数问题
Refactor
- 加密算法升级
- ConcurrentLimitedQueue 改为组合模式
- CrcHelper 清理静态缓存字段
- 提取超时和响应流辅助类
- 移除 Deserialize 泛型约束
- 移除 ToHttpJsonResultData 泛型约束
- LogOptions.Default 改为共享实例
Testing
- 更新测试适配业务代码变更
- 添加测试集合隔离
[2.4.5] - 2026-05-08
Build
- 迁移解决方案文件为 .slnx 格式
[2.4.4] - 2026-05-08
Bug Fixes
- 修复文档链接地址和语言路径
Documentation
- 精简主 README 为项目概览
- 完善 ORM Entity 模块文档
- 完善 Utility 模块文档
- 添加 Localization 模块文档
[2.4.3] - 2026-05-07
Documentation
- 添加多语言 README 支持 (zh-CN, zh-TW, ja, ko)
- 完善多语言翻译内容
[2.4.2] - 2026-04-28
Ci
- 升级 actions/setup-dotnet@v5 和 action-gh-release@v3 适配 Node.js 24
[2.4.1] - 2026-04-28
Ci
- 迁移到 NuGet Trusted Publishing (OIDC)
- 添加 production 环境以匹配 NuGet Trusted Publishing 策略
[2.2.10] - 2026-04-02
Bug Fixes
- 修正小版本模式匹配以去除冒号
[2.2.9] - 2026-04-02
Features
- 添加支持四到八个属性值的调试消息记录方法
- 添加支持四到八个属性值的日志记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的致命错误消息记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的详细级别消息记录方法
[2.2.8] - 2026-03-22
Features
- 为实体字符串属性添加 MaxLength 验证特性
[2.2.7] - 2026-03-20
Features
- 添加字节序转换扩展方法
Testing
- 添加字节序转换测试
[2.2.6] - 2026-03-19
Bug Fixes
- 完善 Encryption 模块的双语文档注释
Documentation
- 为 TimerHelper 添加双语文档注释
- 为 EnvironmentHelper 和 RuntimePlatformHelper 添加双语文档注释
- 为实体类和过滤器接口添加双语文档注释
- 为所有特性类添加双语文档注释
- 为 Options 项目添加双语文档注释
- 为 Logger 项目添加双语文档注释
- 为 Json 项目添加双语文档注释
- 为 Http.Normalization 项目添加双语文档注释
- 为 Http.Extension 项目添加双语文档注释
- 为 Hash 项目添加双语文档注释
- 为扩展方法添加英文文档注释
- 完善字符串扩展方法的 XML 文档注释
- 为 ArgumentAlreadyException 添加英文注释
- 为双向字典添加英文文档注释
- 为字节序扩展方法添加英文注释
- 为集合扩展方法添加英文文档注释
- 为并发限制队列添加英文注释
- 完善基础类型大小常量的注释文档
- 完善 DirectoryExtensions 的 XML 注释文档
- 为 DisposableConcurrentDictionary 添加英文注释
- 为 DisposableDictionary 添加英文注释
- 为表达式扩展方法添加英文文档注释
- 为扩展方法添加英文注释以支持国际化
- 为 IEnumerableExtensions 添加双语文档注释
- 为 NullableDictionary 添加双语文档注释
- 为 SequenceReaderExtensions 添加双语文档注释
- 为 SpanExtensions.BigEndian 添加双语文档注释
- 为 NullableDictionary 完善双语文档注释
- 完善 SpanExtensions.BigEndian 读取方法的双语文档注释
- 完善 SequenceReaderExtensions 的双语文档注释
[2.2.5] - 2026-03-17
Bug Fixes
- 将 tag 创建移到所有操作完成后
Refactor
- 移除重复的 tag 推送
[2.2.4] - 2026-03-17
Bug Fixes
- 添加缺失的 Build 步骤
Ci
- 合并 NuGet 发布步骤到 release 工作流
[2.2.3] - 2026-03-17
Refactor
- CreatedTime 改为非空类型
Ci
- 添加自动打 tag 和发布版本的工作流
- 升级 GitHub Actions 版本
[2.3.0.3] - 2026-03-17
Features
- 添加无长度前缀的字节/字符串读写方法
- 添加毫秒级时间戳转 TimeSpan 的方法
Miscellaneous Tasks
- 添加 .claude 和 scripts 到 gitignore
Testing
- 添加无长度前缀读写方法的单元测试
[2.3.0.2] - 2026-03-17
Documentation
- 完善 SpanExtensions 文档注释并拆分文件
Features
- 添加原始类型读写扩展方法
[2.3.0.1] - 2026-03-17
Bug Fixes
- 修复Unix时间戳计算未包含时间偏移的问题
- 修复GetCrossDays方法调用错误的重载方法
- 修复时区相关方法命名不一致问题
- 修复时区相关方法命名不一致问题
- 修复时间戳计算中缺少TimeOffset偏移的问题
- 修正年份时间戳方法使用错误的转换函数
- 修复重置时间偏移时未正确设置默认值的问题
- 修正时间戳方法名称以准确反映包含时区偏移
- 修正带偏移的Unix时间计算方法
- 修复获取UTC月份起止时间的方法调用错误
- 修正获取UTC时间的方法名错误
- 统一使用GetNowWithUtc方法获取当前时间
- 在DisposableAction中调用GC.SuppressFinalize
- 修复时间函数委托的线程安全问题
- 将标记特性的 AllowMultiple 改为 false
- 修复线程安全和参数验证问题
- IsSuccess 属性添加 JsonIgnore 特性禁止序列化
- 修复资源泄漏、timeout 失效及参数校验缺陷
- 修复AES加密安全缺陷并重命名解密方法
- 修复RSA签名算法、加密填充及资源泄漏
- 替换已弃用DSACryptoServiceProvider并实现资源释放
- 修复国密算法多项安全与质量缺陷
- 修复 Write 系列越界静默失败及 ReadFloat/ReadDouble 副作用
- 修复 CheckRange/IsRange 开区间语义错误
- 移除 GetDisplayWidth 错误的 Unicode 范围
- 修复 WriteBytesWithoutLength null 处理及 ToDefaultString 跨平台编码
- IsNull/IsNotNull 改用 is null 模式匹配
- 异步方法添加 ConfigureAwait(false)
- 修复 CrcHelper 异常处理问题
- 修复空输入处理与 Sha256Helper 行为一致
- 修复竞态条件并优化代码
- 修复无效密钥处理和跨平台兼容性
- 修复 ToDefaultString 方法编码不一致问题
- 修复 WriteBytesValue 方法 null 处理不一致问题
- 修复 ConvertToUnderLine 方法缺少 this 关键字
- 修复 DirectoryExtensions.CreateAsDirectory 无限递归 bug
- 修复 ObjectExtensions.IsNull/IsNotNull 泛型约束问题
- 修复 NullObject.CompareTo 潜在空引用问题
- 为 IsNull/IsNotNull 添加 NotNullWhen 特性
- 修复线程安全和异常处理问题
- 修复输入验证和 DateTimeKind 问题
- 修复 XML 注释并使用本地化星期名称
- 修复 EntitySelectBase 泛型约束错误
- 修复 EntityBase 设计问题
- 修复 OptionsProvider 线程安全和可见性问题
- 改进异常处理并添加调试输出
Documentation
- 更新参数注释以明确默认时区行为
- 添加 TimerHelper 成对函数测试结果报告
- 修复示例代码中错误的泛型调用
- 添加XorHelper安全声明注释
- 添加代码审查报告
- 添加 CODE_REVIEW.md 代码审查报告
- 添加 CODE_REVIEW.md 代码审查报告
- 添加版权声明和接口说明
- 更新多个文件的许可证头部信息
- 添加版权声明头部
- 完善 BooleanParser.ParseBooleanValue 返回值说明
- 添加预初始化日志功能使用说明
Features
- 添加基于UTC的月份时间计算方法
- 添加 UTC 时区的年度时间计算方法
- 添加周时间工具方法并重构时区相关命名
- 添加日期时间工具方法并重构代码结构
- 扩展月份时间工具方法并统一命名规范
- 添加通用的 IsSameWeek 方法并统一时间戳转换
- 补充 TimerHelper UTC 和 TimeZone 成对函数
- 公开 UnicodeJsonEncoder 并添加中文和 Emoji 序列化测试
- 完善 HttpJsonResultData 工厂方法并修复中文转义
- 添加带消息的错误方法重载并保护 IsSuccess 属性
- 新增 PUT、PATCH、DELETE、HEAD、OPTIONS HTTP 扩展方法
- 为 LittleEndian 添加 bytes 和 string 读写方法
- 添加小时范围和星期名称本地化资源
- 添加临时日志记录器支持初始化前日志缓冲
Miscellaneous Tasks
- 删除未使用的TimerHelper.Current.cs文件
- 添加 CODE_REVIEW 文件到 gitignore 并清理
- 删除已注释的无用代码
- 移除CNB仓库引用并添加缺失的using指令
Performance
- 优化 ToHash 方法避免装箱开销
- 优化 ByteExtensions 性能并统一异常处理
- 缓存 GetOptionMappings 结果避免重复计算
- 优化 BuildBorder 并改进宽字符判断
Refactor
- 重构 TimerHelper 类的时间方法到独立文件
- 重构时间工具类,按功能拆分文件
- 重构时间差计算方法并分离关注点
- 重构年份时间方法并分离时区相关逻辑
- 重构周相关时间计算方法并分离关注点
- 重构时间戳工具方法以提高代码组织性
- 将时间偏移方法拆分到独立文件中
- 重构月份时间方法,分离时区相关逻辑
- 重命名 GetCrossDays 方法为 GetCrossDaysUtc
- 重命名时间戳参数以提高可读性
- 重命名时间戳转换方法并移除冗余方法
- 移除带时区时间戳的TimeSpan转换方法
- 将 CurrentTimeZone 属性改为完整属性声明
- 重命名时间转换方法并改进时区处理
- 重构时间工具类的方法命名和位置
- 合并时间戳转换方法并移除无用引用
- 重命名时间差计算方法参数以提高可读性
- 重命名参数以提升代码可读性
- 将 GetTodayStartTime 重命名为 GetTodayStartTimeWithUtc
- 统一使用TimestampSecondToDateTime方法转换时间戳
- 将 TimerHelper 类改为静态类
- 重命名 CurrentTimeWithUtcTime 为 CurrentTimeWithUtc
- 精简时间工具类的 XML 文档注释
- 重构时间工具类中的年份时间戳方法
- 将GetUtcNow替换为GetNowWithUtc以统一命名
- 重命名 GetUtcNow 为 GetNowWithUtc 以明确含义
- 将 LogSavePath 属性从私有设置器改为公共设置器
- 将静态字段重构为属性并更新起始时间
- 使用常量替代默认基准时间的魔数
- 优化实体接口并统一字段为可空类型
- 改进线程安全并清理代码
- 移除 LogHelper.Warn.cs 文件
- 提取共享常量到 HttpJsonResultHelper
- 提取常量到独立的内部类 HttpJsonResultConstants
- IsSuccess 改为只读属性,根据 Code 自动计算
- 提取 IHttpJsonResult 统一接口
- 重命名SM3.cs为SupportClass.cs与类名保持一致
- SpanExtensions BigEndian 写入统一改用 BinaryPrimitives
- 优化 StringExtensions 性能及正确性
- 优化 ByteExtensions 和 SpanExtensions 性能
- 删除被注释掉的异步方法代码
- 统一UTC和TimeZone函数命名规范
- 移除不必要的 unsafe 关键字,使用 Span 替代指针操作
- 将静态方法改为扩展方法
- 提取边界检查辅助方法
- 统一异常消息本地化处理
- 重构 ByteExtensions 并添加 LittleEndian 支持
- 重命名 BigEndian 方法以统一命名规范
- 拆分 ByteExtensions 为多个文件
- 重命名集合扩展方法并优化 RemoveIf
- 标记 ReflectionExtensions 为过时
- ReadOnlySpanExtensions 使用本地化异常消息
- TypeExtensions 统一参数检查模式
- 移除已过时的 ReflectionExtensions 类
- 添加泛型 notnull 约束增强类型安全
- 提取布尔值解析逻辑并优化反射性能
- 代码质量改进
Styling
- 调整 Logo 格式并添加 Cnb 仓库链接
- 统一代码注释格式并添加 CNB 仓库链接
- 统一代码格式和风格
Testing
- 修复时区相关测试中的方法名和断言
- 移除已弃用的TimeSpanWithTimeZoneTimestamp测试方法
- 注释掉时间工具类的测试文件
- 重写 HTTP 扩展单元测试为行为驱动测试
- 新增 HTTP 扩展集成测试(httpbin.org 真实端点)
- 补充XorHelper测试并修复AesHelper测试编译错误
- 更新 Sha1Helper 测试用例
- 同步更新函数命名
- 修复加密相关测试用例
- 修复扩展方法测试用例
- 修复本地化服务测试用例
- 更新测试以适配 API 变更
- 添加 LittleEndian bytes/string 方法的单元测试
- 添加 ConvertToUnderLine 方法的单元测试
- 添加代码审查修复的单元测试
- 添加临时日志记录器单元测试
Build
- 更新 coverlet.collector 依赖版本至 6.0.4
- 启用可空引用类型分析
- 添加 InternalsVisibleTo 支持测试访问内部成员
[2.2.2] - 2026-02-04
Features
- 添加包含时区偏移的 Unix 时间戳方法
- 添加基于时区的 Unix 时间戳转换方法
- 添加基于时区的年度时间戳计算方法
- 添加基于时区的周时间戳计算方法
- 添加带时区偏移的时间戳计算方法
- 添加基于时区的月份时间戳方法
Testing
- 添加时区相关方法的单元测试
[2.2.1] - 2...
2.8.2
[2.8.2] - 2026-07-29
Bug Fixes
- 修复 OrmEntityTests 缺失断言的 Sonar S2699 违规 (#89)
[2.8.1] - 2026-07-29
Styling
- 消除 OrmAttributeTests 的 Sonar S2701 布尔字面量断言违规 (#88)
[2.7.0] - 2026-07-15
Features
- 重命名 Version 为 RowVersion
[2.6.0] - 2026-07-13
Documentation
- 更新 README 补齐密码哈希 KDF 文档
Features
- 新增租户/数据权限/敏感字段/树形/导入导出特性
- 新增下一代密码哈希 KDF
[2.5.2] - 2026-07-08
Bug Fixes
- SHA1/256/512 哈希校验改用常量时间比较
[2.5.1] - 2026-06-09
Bug Fixes
- 修复测试并行冲突和异步时序问题
Styling
- 移除测试文件尾部空行
Build
- 升级 Localization.Abstractions 至 10.0.8
- 升级 Grafana.Loki 并适配压缩 API
- 升级测试框架至 xunit v3
[2.5.0] - 2026-06-09
Bug Fixes
- SM4 兼容 C# 10.0 无符号右移
- 修复 GetNowWithUtc 返回非 UTC Kind
- 修复 ToHttpJsonResultData 转换失败时返回值
Features
- 新增异步释放字典和异步集合扩展
- 增强 BidirectionalDictionary
- ConcurrentLimitedQueue 溢出策略和丢弃通知
- 新增 HashHelper 统一入口和 HashAlgorithmKind
- 各哈希 Helper 新增流式和异步重载
- HMAC Helper 新增重载和验证方法
- 新增类型化 JSON 请求扩展
- 新增源生成、流式异步及错误详情重载
- 文化回退链、格式化错误策略及缺失键追踪
- 新增领域事件、租户组织基类和契约验证器
- 新增 ID 解析、WorkerId 提供者和统计指标
- TimerHelper 支持 TimeProvider 注入
- 新增 TryToHttpJsonResultData 转换诊断
- 新增日志敏感字段脱敏
- 新增 Sensitive 属性脱敏
- 新增 WorkerId 冲突检测与稳定哈希
Refactor
- Disposable 字典增加错误处理,移除终结器
Styling
- 测试代码适配 C# 10.0 语法
Testing
- 集成测试默认跳过,需环境变量启用
- 修复 OptionsBuilder 集合隔离,添加 HttpJsonResult 单元测试
- 新增异步释放字典和异步集合扩展测试
- BidirectionalDictionary 和 ConcurrentLimitedQueue 增强测试
- Disposable 字典错误处理测试
- 新增流式、异步和统一入口测试
- 新增源生成、流式异步和错误详情测试
- 新增高优先级功能测试
- 新增 ID 解析和 Worker 测试
- 新增 TimeProvider 注入测试
Build
- 更新各模块包描述和标签
- 测试项目禁用文档文件生成
- 降级 LangVersion 至 10.0
- 目标框架切换为 net10.0 单目标
- 升级 Localization.Abstractions 至 10.0.0
[2.4.9] - 2026-06-03
Bug Fixes
- 月份时区时间戳未应用时区偏移
[2.4.8] - 2026-06-03
Documentation
- 修复 README 文件 Markdown 格式
Styling
- 修复 TimerHelper XML 文档注释缩进
- 批量修复 C# 代码格式问题
[2.4.7] - 2026-05-30
Bug Fixes
- HmacSha256Helper 补充参数验证
- RsaHelper.SignData 不再静默返回 null
- DisposableDictionary.Dispose(bool) 检查 disposing 参数
- Sm4Helper 标记 ECB 模式方法为 Obsolete
- JsonHelper 简化反序列化 fallback 模式
- LogHelper.Error 移除昂贵的 StackTrace 构造
- HttpJsonResultHelper 日志级别 Fatal 降级为 Error
- NullObject.GetHashCode 增加 null 检查
- Md5Helper 移除静态 MD5 缓存实例,改用 MD5.Create()
- LogConsole 补全标题超长时的边界处理
- LogHandler 修复 GrafanaLoki null 检查与错误日志结构化
- Info(ILogger, Exception) 实际使用传入的 logger 参数
- WarningConsole 用 try/finally 保护 ConsoleColor.Reset
- DisposableAction 用 Interlocked 防止重复执行
- HmacSha256Helper 空字符串改为合法输入,仅拒绝 null
Testing
- RsaHelperTests 适配 SignData 不再返回 null 的新行为
- DisposableDictionaryTests 终结器不再释放值的测试适配
[2.4.6] - 2026-05-12
Bug Fixes
- ResourceManager 线程安全修复
- Async void 修正为 ValueTask
- 修复命令行解析负数参数问题
Refactor
- 加密算法升级
- ConcurrentLimitedQueue 改为组合模式
- CrcHelper 清理静态缓存字段
- 提取超时和响应流辅助类
- 移除 Deserialize 泛型约束
- 移除 ToHttpJsonResultData 泛型约束
- LogOptions.Default 改为共享实例
Testing
- 更新测试适配业务代码变更
- 添加测试集合隔离
[2.4.5] - 2026-05-08
Build
- 迁移解决方案文件为 .slnx 格式
[2.4.4] - 2026-05-08
Bug Fixes
- 修复文档链接地址和语言路径
Documentation
- 精简主 README 为项目概览
- 完善 ORM Entity 模块文档
- 完善 Utility 模块文档
- 添加 Localization 模块文档
[2.4.3] - 2026-05-07
Documentation
- 添加多语言 README 支持 (zh-CN, zh-TW, ja, ko)
- 完善多语言翻译内容
[2.4.2] - 2026-04-28
Ci
- 升级 actions/setup-dotnet@v5 和 action-gh-release@v3 适配 Node.js 24
[2.4.1] - 2026-04-28
Ci
- 迁移到 NuGet Trusted Publishing (OIDC)
- 添加 production 环境以匹配 NuGet Trusted Publishing 策略
[2.2.10] - 2026-04-02
Bug Fixes
- 修正小版本模式匹配以去除冒号
[2.2.9] - 2026-04-02
Features
- 添加支持四到八个属性值的调试消息记录方法
- 添加支持四到八个属性值的日志记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的致命错误消息记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的详细级别消息记录方法
[2.2.8] - 2026-03-22
Features
- 为实体字符串属性添加 MaxLength 验证特性
[2.2.7] - 2026-03-20
Features
- 添加字节序转换扩展方法
Testing
- 添加字节序转换测试
[2.2.6] - 2026-03-19
Bug Fixes
- 完善 Encryption 模块的双语文档注释
Documentation
- 为 TimerHelper 添加双语文档注释
- 为 EnvironmentHelper 和 RuntimePlatformHelper 添加双语文档注释
- 为实体类和过滤器接口添加双语文档注释
- 为所有特性类添加双语文档注释
- 为 Options 项目添加双语文档注释
- 为 Logger 项目添加双语文档注释
- 为 Json 项目添加双语文档注释
- 为 Http.Normalization 项目添加双语文档注释
- 为 Http.Extension 项目添加双语文档注释
- 为 Hash 项目添加双语文档注释
- 为扩展方法添加英文文档注释
- 完善字符串扩展方法的 XML 文档注释
- 为 ArgumentAlreadyException 添加英文注释
- 为双向字典添加英文文档注释
- 为字节序扩展方法添加英文注释
- 为集合扩展方法添加英文文档注释
- 为并发限制队列添加英文注释
- 完善基础类型大小常量的注释文档
- 完善 DirectoryExtensions 的 XML 注释文档
- 为 DisposableConcurrentDictionary 添加英文注释
- 为 DisposableDictionary 添加英文注释
- 为表达式扩展方法添加英文文档注释
- 为扩展方法添加英文注释以支持国际化
- 为 IEnumerableExtensions 添加双语文档注释
- 为 NullableDictionary 添加双语文档注释
- 为 SequenceReaderExtensions 添加双语文档注释
- 为 SpanExtensions.BigEndian 添加双语文档注释
- 为 NullableDictionary 完善双语文档注释
- 完善 SpanExtensions.BigEndian 读取方法的双语文档注释
- 完善 SequenceReaderExtensions 的双语文档注释
[2.2.5] - 2026-03-17
Bug Fixes
- 将 tag 创建移到所有操作完成后
Refactor
- 移除重复的 tag 推送
[2.2.4] - 2026-03-17
Bug Fixes
- 添加缺失的 Build 步骤
Ci
- 合并 NuGet 发布步骤到 release 工作流
[2.2.3] - 2026-03-17
Refactor
- CreatedTime 改为非空类型
Ci
- 添加自动打 tag 和发布版本的工作流
- 升级 GitHub Actions 版本
[2.3.0.3] - 2026-03-17
Features
- 添加无长度前缀的字节/字符串读写方法
- 添加毫秒级时间戳转 TimeSpan 的方法
Miscellaneous Tasks
- 添加 .claude 和 scripts 到 gitignore
Testing
- 添加无长度前缀读写方法的单元测试
[2.3.0.2] - 2026-03-17
Documentation
- 完善 SpanExtensions 文档注释并拆分文件
Features
- 添加原始类型读写扩展方法
[2.3.0.1] - 2026-03-17
Bug Fixes
- 修复Unix时间戳计算未包含时间偏移的问题
- 修复GetCrossDays方法调用错误的重载方法
- 修复时区相关方法命名不一致问题
- 修复时区相关方法命名不一致问题
- 修复时间戳计算中缺少TimeOffset偏移的问题
- 修正年份时间戳方法使用错误的转换函数
- 修复重置时间偏移时未正确设置默认值的问题
- 修正时间戳方法名称以准确反映包含时区偏移
- 修正带偏移的Unix时间计算方法
- 修复获取UTC月份起止时间的方法调用错误
- 修正获取UTC时间的方法名错误
- 统一使用GetNowWithUtc方法获取当前时间
- 在DisposableAction中调用GC.SuppressFinalize
- 修复时间函数委托的线程安全问题
- 将标记特性的 AllowMultiple 改为 false
- 修复线程安全和参数验证问题
- IsSuccess 属性添加 JsonIgnore 特性禁止序列化
- 修复资源泄漏、timeout 失效及参数校验缺陷
- 修复AES加密安全缺陷并重命名解密方法
- 修复RSA签名算法、加密填充及资源泄漏
- 替换已弃用DSACryptoServiceProvider并实现资源释放
- 修复国密算法多项安全与质量缺陷
- 修复 Write 系列越界静默失败及 ReadFloat/ReadDouble 副作用
- 修复 CheckRange/IsRange 开区间语义错误
- 移除 GetDisplayWidth 错误的 Unicode 范围
- 修复 WriteBytesWithoutLength null 处理及 ToDefaultString 跨平台编码
- IsNull/IsNotNull 改用 is null 模式匹配
- 异步方法添加 ConfigureAwait(false)
- 修复 CrcHelper 异常处理问题
- 修复空输入处理与 Sha256Helper 行为一致
- 修复竞态条件并优化代码
- 修复无效密钥处理和跨平台兼容性
- 修复 ToDefaultString 方法编码不一致问题
- 修复 WriteBytesValue 方法 null 处理不一致问题
- 修复 ConvertToUnderLine 方法缺少 this 关键字
- 修复 DirectoryExtensions.CreateAsDirectory 无限递归 bug
- 修复 ObjectExtensions.IsNull/IsNotNull 泛型约束问题
- 修复 NullObject.CompareTo 潜在空引用问题
- 为 IsNull/IsNotNull 添加 NotNullWhen 特性
- 修复线程安全和异常处理问题
- 修复输入验证和 DateTimeKind 问题
- 修复 XML 注释并使用本地化星期名称
- 修复 EntitySelectBase 泛型约束错误
- 修复 EntityBase 设计问题
- 修复 OptionsProvider 线程安全和可见性问题
- 改进异常处理并添加调试输出
Documentation
- 更新参数注释以明确默认时区行为
- 添加 TimerHelper 成对函数测试结果报告
- 修复示例代码中错误的泛型调用
- 添加XorHelper安全声明注释
- 添加代码审查报告
- 添加 CODE_REVIEW.md 代码审查报告
- 添加 CODE_REVIEW.md 代码审查报告
- 添加版权声明和接口说明
- 更新多个文件的许可证头部信息
- 添加版权声明头部
- 完善 BooleanParser.ParseBooleanValue 返回值说明
- 添加预初始化日志功能使用说明
Features
- 添加基于UTC的月份时间计算方法
- 添加 UTC 时区的年度时间计算方法
- 添加周时间工具方法并重构时区相关命名
- 添加日期时间工具方法并重构代码结构
- 扩展月份时间工具方法并统一命名规范
- 添加通用的 IsSameWeek 方法并统一时间戳转换
- 补充 TimerHelper UTC 和 TimeZone 成对函数
- 公开 UnicodeJsonEncoder 并添加中文和 Emoji 序列化测试
- 完善 HttpJsonResultData 工厂方法并修复中文转义
- 添加带消息的错误方法重载并保护 IsSuccess 属性
- 新增 PUT、PATCH、DELETE、HEAD、OPTIONS HTTP 扩展方法
- 为 LittleEndian 添加 bytes 和 string 读写方法
- 添加小时范围和星期名称本地化资源
- 添加临时日志记录器支持初始化前日志缓冲
Miscellaneous Tasks
- 删除未使用的TimerHelper.Current.cs文件
- 添加 CODE_REVIEW 文件到 gitignore 并清理
- 删除已注释的无用代码
- 移除CNB仓库引用并添加缺失的using指令
Performance
- 优化 ToHash 方法避免装箱开销
- 优化 ByteExtensions 性能并统一异常处理
- 缓存 GetOptionMappings 结果避免重复计算
- 优化 BuildBorder 并改进宽字符判断
Refactor
- 重构 TimerHelper 类的时间方法到独立文件
- 重构时间工具类,按功能拆分文件
- 重构时间差计算方法并分离关注点
- 重构年份时间方法并分离时区相关逻辑
- 重构周相关时间计算方法并分离关注点
- 重构时间戳工具方法以提高代码组织性
- 将时间偏移方法拆分到独立文件中
- 重构月份时间方法,分离时区相关逻辑
- 重命名 GetCrossDays 方法为 GetCrossDaysUtc
- 重命名时间戳参数以提高可读性
- 重命名时间戳转换方法并移除冗余方法
- 移除带时区时间戳的TimeSpan转换方法
- 将 CurrentTimeZone 属性改为完整属性声明
- 重命名时间转换方法并改进时区处理
- 重构时间工具类的方法命名和位置
- 合并时间戳转换方法并移除无用引用
- 重命名时间差计算方法参数以提高可读性
- 重命名参数以提升代码可读性
- 将 GetTodayStartTime 重命名为 GetTodayStartTimeWithUtc
- 统一使用TimestampSecondToDateTime方法转换时间戳
- 将 TimerHelper 类改为静态类
- 重命名 CurrentTimeWithUtcTime 为 CurrentTimeWithUtc
- 精简时间工具类的 XML 文档注释
- 重构时间工具类中的年份时间戳方法
- 将GetUtcNow替换为GetNowWithUtc以统一命名
- 重命名 GetUtcNow 为 GetNowWithUtc 以明确含义
- 将 LogSavePath 属性从私有设置器改为公共设置器
- 将静态字段重构为属性并更新起始时间
- 使用常量替代默认基准时间的魔数
- 优化实体接口并统一字段为可空类型
- 改进线程安全并清理代码
- 移除 LogHelper.Warn.cs 文件
- 提取共享常量到 HttpJsonResultHelper
- 提取常量到独立的内部类 HttpJsonResultConstants
- IsSuccess 改为只读属性,根据 Code 自动计算
- 提取 IHttpJsonResult 统一接口
- 重命名SM3.cs为SupportClass.cs与类名保持一致
- SpanExtensions BigEndian 写入统一改用 BinaryPrimitives
- 优化 StringExtensions 性能及正确性
- 优化 ByteExtensions 和 SpanExtensions 性能
- 删除被注释掉的异步方法代码
- 统一UTC和TimeZone函数命名规范
- 移除不必要的 unsafe 关键字,使用 Span 替代指针操作
- 将静态方法改为扩展方法
- 提取边界检查辅助方法
- 统一异常消息本地化处理
- 重构 ByteExtensions 并添加 LittleEndian 支持
- 重命名 BigEndian 方法以统一命名规范
- 拆分 ByteExtensions 为多个文件
- 重命名集合扩展方法并优化 RemoveIf
- 标记 ReflectionExtensions 为过时
- ReadOnlySpanExtensions 使用本地化异常消息
- TypeExtensions 统一参数检查模式
- 移除已过时的 ReflectionExtensions 类
- 添加泛型 notnull 约束增强类型安全
- 提取布尔值解析逻辑并优化反射性能
- 代码质量改进
Styling
- 调整 Logo 格式并添加 Cnb 仓库链接
- 统一代码注释格式并添加 CNB 仓库链接
- 统一代码格式和风格
Testing
- 修复时区相关测试中的方法名和断言
- 移除已弃用的TimeSpanWithTimeZoneTimestamp测试方法
- 注释掉时间工具类的测试文件
- 重写 HTTP 扩展单元测试为行为驱动测试
- 新增 HTTP 扩展集成测试(httpbin.org 真实端点)
- 补充XorHelper测试并修复AesHelper测试编译错误
- 更新 Sha1Helper 测试用例
- 同步更新函数命名
- 修复加密相关测试用例
- 修复扩展方法测试用例
- 修复本地化服务测试用例
- 更新测试以适配 API 变更
- 添加 LittleEndian bytes/string 方法的单元测试
- 添加 ConvertToUnderLine 方法的单元测试
- 添加代码审查修复的单元测试
- 添加临时日志记录器单元测试
Build
- 更新 coverlet.collector 依赖版本至 6.0.4
- 启用可空引用类型分析
- 添加 InternalsVisibleTo 支持测试访问内部成员
[2.2.2] - 2026-02-04
Features
- 添加包含时区偏移的 Unix 时间戳方法
- 添加基于时区的 Unix 时间戳转换方法
- 添加基于时区的年度时间戳计算方法
- 添加基于时区的周时间戳计算方法
- 添加带时区偏移的时间戳计算方法
- 添加基于时区的月份时间戳方法
Testing
- 添加时区相关方法的单元测试
[2.2.1] - 2026-02-04
Bug Fixes
- 修正 GetNow 方法以使用 CurrentTimeZone 进行时区转换
- 修正时区处理确保时间戳计算正确
- 修...
2.8.1
[2.8.1] - 2026-07-29
Styling
- 消除 OrmAttributeTests 的 Sonar S2701 布尔字面量断言违规 (#88)
[2.7.0] - 2026-07-15
Features
- 重命名 Version 为 RowVersion
[2.6.0] - 2026-07-13
Documentation
- 更新 README 补齐密码哈希 KDF 文档
Features
- 新增租户/数据权限/敏感字段/树形/导入导出特性
- 新增下一代密码哈希 KDF
[2.5.2] - 2026-07-08
Bug Fixes
- SHA1/256/512 哈希校验改用常量时间比较
[2.5.1] - 2026-06-09
Bug Fixes
- 修复测试并行冲突和异步时序问题
Styling
- 移除测试文件尾部空行
Build
- 升级 Localization.Abstractions 至 10.0.8
- 升级 Grafana.Loki 并适配压缩 API
- 升级测试框架至 xunit v3
[2.5.0] - 2026-06-09
Bug Fixes
- SM4 兼容 C# 10.0 无符号右移
- 修复 GetNowWithUtc 返回非 UTC Kind
- 修复 ToHttpJsonResultData 转换失败时返回值
Features
- 新增异步释放字典和异步集合扩展
- 增强 BidirectionalDictionary
- ConcurrentLimitedQueue 溢出策略和丢弃通知
- 新增 HashHelper 统一入口和 HashAlgorithmKind
- 各哈希 Helper 新增流式和异步重载
- HMAC Helper 新增重载和验证方法
- 新增类型化 JSON 请求扩展
- 新增源生成、流式异步及错误详情重载
- 文化回退链、格式化错误策略及缺失键追踪
- 新增领域事件、租户组织基类和契约验证器
- 新增 ID 解析、WorkerId 提供者和统计指标
- TimerHelper 支持 TimeProvider 注入
- 新增 TryToHttpJsonResultData 转换诊断
- 新增日志敏感字段脱敏
- 新增 Sensitive 属性脱敏
- 新增 WorkerId 冲突检测与稳定哈希
Refactor
- Disposable 字典增加错误处理,移除终结器
Styling
- 测试代码适配 C# 10.0 语法
Testing
- 集成测试默认跳过,需环境变量启用
- 修复 OptionsBuilder 集合隔离,添加 HttpJsonResult 单元测试
- 新增异步释放字典和异步集合扩展测试
- BidirectionalDictionary 和 ConcurrentLimitedQueue 增强测试
- Disposable 字典错误处理测试
- 新增流式、异步和统一入口测试
- 新增源生成、流式异步和错误详情测试
- 新增高优先级功能测试
- 新增 ID 解析和 Worker 测试
- 新增 TimeProvider 注入测试
Build
- 更新各模块包描述和标签
- 测试项目禁用文档文件生成
- 降级 LangVersion 至 10.0
- 目标框架切换为 net10.0 单目标
- 升级 Localization.Abstractions 至 10.0.0
[2.4.9] - 2026-06-03
Bug Fixes
- 月份时区时间戳未应用时区偏移
[2.4.8] - 2026-06-03
Documentation
- 修复 README 文件 Markdown 格式
Styling
- 修复 TimerHelper XML 文档注释缩进
- 批量修复 C# 代码格式问题
[2.4.7] - 2026-05-30
Bug Fixes
- HmacSha256Helper 补充参数验证
- RsaHelper.SignData 不再静默返回 null
- DisposableDictionary.Dispose(bool) 检查 disposing 参数
- Sm4Helper 标记 ECB 模式方法为 Obsolete
- JsonHelper 简化反序列化 fallback 模式
- LogHelper.Error 移除昂贵的 StackTrace 构造
- HttpJsonResultHelper 日志级别 Fatal 降级为 Error
- NullObject.GetHashCode 增加 null 检查
- Md5Helper 移除静态 MD5 缓存实例,改用 MD5.Create()
- LogConsole 补全标题超长时的边界处理
- LogHandler 修复 GrafanaLoki null 检查与错误日志结构化
- Info(ILogger, Exception) 实际使用传入的 logger 参数
- WarningConsole 用 try/finally 保护 ConsoleColor.Reset
- DisposableAction 用 Interlocked 防止重复执行
- HmacSha256Helper 空字符串改为合法输入,仅拒绝 null
Testing
- RsaHelperTests 适配 SignData 不再返回 null 的新行为
- DisposableDictionaryTests 终结器不再释放值的测试适配
[2.4.6] - 2026-05-12
Bug Fixes
- ResourceManager 线程安全修复
- Async void 修正为 ValueTask
- 修复命令行解析负数参数问题
Refactor
- 加密算法升级
- ConcurrentLimitedQueue 改为组合模式
- CrcHelper 清理静态缓存字段
- 提取超时和响应流辅助类
- 移除 Deserialize 泛型约束
- 移除 ToHttpJsonResultData 泛型约束
- LogOptions.Default 改为共享实例
Testing
- 更新测试适配业务代码变更
- 添加测试集合隔离
[2.4.5] - 2026-05-08
Build
- 迁移解决方案文件为 .slnx 格式
[2.4.4] - 2026-05-08
Bug Fixes
- 修复文档链接地址和语言路径
Documentation
- 精简主 README 为项目概览
- 完善 ORM Entity 模块文档
- 完善 Utility 模块文档
- 添加 Localization 模块文档
[2.4.3] - 2026-05-07
Documentation
- 添加多语言 README 支持 (zh-CN, zh-TW, ja, ko)
- 完善多语言翻译内容
[2.4.2] - 2026-04-28
Ci
- 升级 actions/setup-dotnet@v5 和 action-gh-release@v3 适配 Node.js 24
[2.4.1] - 2026-04-28
Ci
- 迁移到 NuGet Trusted Publishing (OIDC)
- 添加 production 环境以匹配 NuGet Trusted Publishing 策略
[2.2.10] - 2026-04-02
Bug Fixes
- 修正小版本模式匹配以去除冒号
[2.2.9] - 2026-04-02
Features
- 添加支持四到八个属性值的调试消息记录方法
- 添加支持四到八个属性值的日志记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的错误消息记录方法
- 添加支持四到八个属性值的致命错误消息记录方法
- 添加支持四到八个属性值的警告消息记录方法
- 添加支持四到八个属性值的详细级别消息记录方法
[2.2.8] - 2026-03-22
Features
- 为实体字符串属性添加 MaxLength 验证特性
[2.2.7] - 2026-03-20
Features
- 添加字节序转换扩展方法
Testing
- 添加字节序转换测试
[2.2.6] - 2026-03-19
Bug Fixes
- 完善 Encryption 模块的双语文档注释
Documentation
- 为 TimerHelper 添加双语文档注释
- 为 EnvironmentHelper 和 RuntimePlatformHelper 添加双语文档注释
- 为实体类和过滤器接口添加双语文档注释
- 为所有特性类添加双语文档注释
- 为 Options 项目添加双语文档注释
- 为 Logger 项目添加双语文档注释
- 为 Json 项目添加双语文档注释
- 为 Http.Normalization 项目添加双语文档注释
- 为 Http.Extension 项目添加双语文档注释
- 为 Hash 项目添加双语文档注释
- 为扩展方法添加英文文档注释
- 完善字符串扩展方法的 XML 文档注释
- 为 ArgumentAlreadyException 添加英文注释
- 为双向字典添加英文文档注释
- 为字节序扩展方法添加英文注释
- 为集合扩展方法添加英文文档注释
- 为并发限制队列添加英文注释
- 完善基础类型大小常量的注释文档
- 完善 DirectoryExtensions 的 XML 注释文档
- 为 DisposableConcurrentDictionary 添加英文注释
- 为 DisposableDictionary 添加英文注释
- 为表达式扩展方法添加英文文档注释
- 为扩展方法添加英文注释以支持国际化
- 为 IEnumerableExtensions 添加双语文档注释
- 为 NullableDictionary 添加双语文档注释
- 为 SequenceReaderExtensions 添加双语文档注释
- 为 SpanExtensions.BigEndian 添加双语文档注释
- 为 NullableDictionary 完善双语文档注释
- 完善 SpanExtensions.BigEndian 读取方法的双语文档注释
- 完善 SequenceReaderExtensions 的双语文档注释
[2.2.5] - 2026-03-17
Bug Fixes
- 将 tag 创建移到所有操作完成后
Refactor
- 移除重复的 tag 推送
[2.2.4] - 2026-03-17
Bug Fixes
- 添加缺失的 Build 步骤
Ci
- 合并 NuGet 发布步骤到 release 工作流
[2.2.3] - 2026-03-17
Refactor
- CreatedTime 改为非空类型
Ci
- 添加自动打 tag 和发布版本的工作流
- 升级 GitHub Actions 版本
[2.3.0.3] - 2026-03-17
Features
- 添加无长度前缀的字节/字符串读写方法
- 添加毫秒级时间戳转 TimeSpan 的方法
Miscellaneous Tasks
- 添加 .claude 和 scripts 到 gitignore
Testing
- 添加无长度前缀读写方法的单元测试
[2.3.0.2] - 2026-03-17
Documentation
- 完善 SpanExtensions 文档注释并拆分文件
Features
- 添加原始类型读写扩展方法
[2.3.0.1] - 2026-03-17
Bug Fixes
- 修复Unix时间戳计算未包含时间偏移的问题
- 修复GetCrossDays方法调用错误的重载方法
- 修复时区相关方法命名不一致问题
- 修复时区相关方法命名不一致问题
- 修复时间戳计算中缺少TimeOffset偏移的问题
- 修正年份时间戳方法使用错误的转换函数
- 修复重置时间偏移时未正确设置默认值的问题
- 修正时间戳方法名称以准确反映包含时区偏移
- 修正带偏移的Unix时间计算方法
- 修复获取UTC月份起止时间的方法调用错误
- 修正获取UTC时间的方法名错误
- 统一使用GetNowWithUtc方法获取当前时间
- 在DisposableAction中调用GC.SuppressFinalize
- 修复时间函数委托的线程安全问题
- 将标记特性的 AllowMultiple 改为 false
- 修复线程安全和参数验证问题
- IsSuccess 属性添加 JsonIgnore 特性禁止序列化
- 修复资源泄漏、timeout 失效及参数校验缺陷
- 修复AES加密安全缺陷并重命名解密方法
- 修复RSA签名算法、加密填充及资源泄漏
- 替换已弃用DSACryptoServiceProvider并实现资源释放
- 修复国密算法多项安全与质量缺陷
- 修复 Write 系列越界静默失败及 ReadFloat/ReadDouble 副作用
- 修复 CheckRange/IsRange 开区间语义错误
- 移除 GetDisplayWidth 错误的 Unicode 范围
- 修复 WriteBytesWithoutLength null 处理及 ToDefaultString 跨平台编码
- IsNull/IsNotNull 改用 is null 模式匹配
- 异步方法添加 ConfigureAwait(false)
- 修复 CrcHelper 异常处理问题
- 修复空输入处理与 Sha256Helper 行为一致
- 修复竞态条件并优化代码
- 修复无效密钥处理和跨平台兼容性
- 修复 ToDefaultString 方法编码不一致问题
- 修复 WriteBytesValue 方法 null 处理不一致问题
- 修复 ConvertToUnderLine 方法缺少 this 关键字
- 修复 DirectoryExtensions.CreateAsDirectory 无限递归 bug
- 修复 ObjectExtensions.IsNull/IsNotNull 泛型约束问题
- 修复 NullObject.CompareTo 潜在空引用问题
- 为 IsNull/IsNotNull 添加 NotNullWhen 特性
- 修复线程安全和异常处理问题
- 修复输入验证和 DateTimeKind 问题
- 修复 XML 注释并使用本地化星期名称
- 修复 EntitySelectBase 泛型约束错误
- 修复 EntityBase 设计问题
- 修复 OptionsProvider 线程安全和可见性问题
- 改进异常处理并添加调试输出
Documentation
- 更新参数注释以明确默认时区行为
- 添加 TimerHelper 成对函数测试结果报告
- 修复示例代码中错误的泛型调用
- 添加XorHelper安全声明注释
- 添加代码审查报告
- 添加 CODE_REVIEW.md 代码审查报告
- 添加 CODE_REVIEW.md 代码审查报告
- 添加版权声明和接口说明
- 更新多个文件的许可证头部信息
- 添加版权声明头部
- 完善 BooleanParser.ParseBooleanValue 返回值说明
- 添加预初始化日志功能使用说明
Features
- 添加基于UTC的月份时间计算方法
- 添加 UTC 时区的年度时间计算方法
- 添加周时间工具方法并重构时区相关命名
- 添加日期时间工具方法并重构代码结构
- 扩展月份时间工具方法并统一命名规范
- 添加通用的 IsSameWeek 方法并统一时间戳转换
- 补充 TimerHelper UTC 和 TimeZone 成对函数
- 公开 UnicodeJsonEncoder 并添加中文和 Emoji 序列化测试
- 完善 HttpJsonResultData 工厂方法并修复中文转义
- 添加带消息的错误方法重载并保护 IsSuccess 属性
- 新增 PUT、PATCH、DELETE、HEAD、OPTIONS HTTP 扩展方法
- 为 LittleEndian 添加 bytes 和 string 读写方法
- 添加小时范围和星期名称本地化资源
- 添加临时日志记录器支持初始化前日志缓冲
Miscellaneous Tasks
- 删除未使用的TimerHelper.Current.cs文件
- 添加 CODE_REVIEW 文件到 gitignore 并清理
- 删除已注释的无用代码
- 移除CNB仓库引用并添加缺失的using指令
Performance
- 优化 ToHash 方法避免装箱开销
- 优化 ByteExtensions 性能并统一异常处理
- 缓存 GetOptionMappings 结果避免重复计算
- 优化 BuildBorder 并改进宽字符判断
Refactor
- 重构 TimerHelper 类的时间方法到独立文件
- 重构时间工具类,按功能拆分文件
- 重构时间差计算方法并分离关注点
- 重构年份时间方法并分离时区相关逻辑
- 重构周相关时间计算方法并分离关注点
- 重构时间戳工具方法以提高代码组织性
- 将时间偏移方法拆分到独立文件中
- 重构月份时间方法,分离时区相关逻辑
- 重命名 GetCrossDays 方法为 GetCrossDaysUtc
- 重命名时间戳参数以提高可读性
- 重命名时间戳转换方法并移除冗余方法
- 移除带时区时间戳的TimeSpan转换方法
- 将 CurrentTimeZone 属性改为完整属性声明
- 重命名时间转换方法并改进时区处理
- 重构时间工具类的方法命名和位置
- 合并时间戳转换方法并移除无用引用
- 重命名时间差计算方法参数以提高可读性
- 重命名参数以提升代码可读性
- 将 GetTodayStartTime 重命名为 GetTodayStartTimeWithUtc
- 统一使用TimestampSecondToDateTime方法转换时间戳
- 将 TimerHelper 类改为静态类
- 重命名 CurrentTimeWithUtcTime 为 CurrentTimeWithUtc
- 精简时间工具类的 XML 文档注释
- 重构时间工具类中的年份时间戳方法
- 将GetUtcNow替换为GetNowWithUtc以统一命名
- 重命名 GetUtcNow 为 GetNowWithUtc 以明确含义
- 将 LogSavePath 属性从私有设置器改为公共设置器
- 将静态字段重构为属性并更新起始时间
- 使用常量替代默认基准时间的魔数
- 优化实体接口并统一字段为可空类型
- 改进线程安全并清理代码
- 移除 LogHelper.Warn.cs 文件
- 提取共享常量到 HttpJsonResultHelper
- 提取常量到独立的内部类 HttpJsonResultConstants
- IsSuccess 改为只读属性,根据 Code 自动计算
- 提取 IHttpJsonResult 统一接口
- 重命名SM3.cs为SupportClass.cs与类名保持一致
- SpanExtensions BigEndian 写入统一改用 BinaryPrimitives
- 优化 StringExtensions 性能及正确性
- 优化 ByteExtensions 和 SpanExtensions 性能
- 删除被注释掉的异步方法代码
- 统一UTC和TimeZone函数命名规范
- 移除不必要的 unsafe 关键字,使用 Span 替代指针操作
- 将静态方法改为扩展方法
- 提取边界检查辅助方法
- 统一异常消息本地化处理
- 重构 ByteExtensions 并添加 LittleEndian 支持
- 重命名 BigEndian 方法以统一命名规范
- 拆分 ByteExtensions 为多个文件
- 重命名集合扩展方法并优化 RemoveIf
- 标记 ReflectionExtensions 为过时
- ReadOnlySpanExtensions 使用本地化异常消息
- TypeExtensions 统一参数检查模式
- 移除已过时的 ReflectionExtensions 类
- 添加泛型 notnull 约束增强类型安全
- 提取布尔值解析逻辑并优化反射性能
- 代码质量改进
Styling
- 调整 Logo 格式并添加 Cnb 仓库链接
- 统一代码注释格式并添加 CNB 仓库链接
- 统一代码格式和风格
Testing
- 修复时区相关测试中的方法名和断言
- 移除已弃用的TimeSpanWithTimeZoneTimestamp测试方法
- 注释掉时间工具类的测试文件
- 重写 HTTP 扩展单元测试为行为驱动测试
- 新增 HTTP 扩展集成测试(httpbin.org 真实端点)
- 补充XorHelper测试并修复AesHelper测试编译错误
- 更新 Sha1Helper 测试用例
- 同步更新函数命名
- 修复加密相关测试用例
- 修复扩展方法测试用例
- 修复本地化服务测试用例
- 更新测试以适配 API 变更
- 添加 LittleEndian bytes/string 方法的单元测试
- 添加 ConvertToUnderLine 方法的单元测试
- 添加代码审查修复的单元测试
- 添加临时日志记录器单元测试
Build
- 更新 coverlet.collector 依赖版本至 6.0.4
- 启用可空引用类型分析
- 添加 InternalsVisibleTo 支持测试访问内部成员
[2.2.2] - 2026-02-04
Features
- 添加包含时区偏移的 Unix 时间戳方法
- 添加基于时区的 Unix 时间戳转换方法
- 添加基于时区的年度时间戳计算方法
- 添加基于时区的周时间戳计算方法
- 添加带时区偏移的时间戳计算方法
- 添加基于时区的月份时间戳方法
Testing
- 添加时区相关方法的单元测试
[2.2.1] - 2026-02-04
Bug Fixes
- 修正 GetNow 方法以使用 CurrentTimeZone 进行时区转换
- 修正时区处理确保时间戳计算正确
- 修正年份相关时间戳计算以使用当前时区
- 修复周时间戳计算中的时区偏移问题
- 修复月份时间戳计算中的时区处理问题
- 修复时间戳转换时区处理错误
- 修复时间戳转换方法中的时区...