Skip to content

Releases: GameFrameX/GameFrameX.Foundation

4.0.0

Choose a tag to compare

@github-actions github-actions released this 13 Aug 04:48

[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

...

Read more

3.1.2

Choose a tag to compare

@github-actions github-actions released this 12 Aug 14:30

[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 项目添加双语文档注释
  • 为...
Read more

3.1.1

Choose a tag to compare

@github-actions github-actions released this 12 Aug 14:27

[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 项目添加双语文档...
Read more

3.1.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 14:25

[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...
Read more

3.0.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 09:37

[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 添加英文注释...
Read more

2.9.1

Choose a tag to compare

@github-actions github-actions released this 12 Aug 09:25

[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 添加双语文档...
Read more

2.9.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 09:15

[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...
Read more

2.8.3

Choose a tag to compare

@github-actions github-actions released this 05 Aug 02:36

[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...

Read more

2.8.2

Choose a tag to compare

@github-actions github-actions released this 29 Jul 06:14

[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 进行时区转换
  • 修正时区处理确保时间戳计算正确
  • 修...
Read more

2.8.1

Choose a tag to compare

@github-actions github-actions released this 29 Jul 06:11

[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 进行时区转换
  • 修正时区处理确保时间戳计算正确
  • 修正年份相关时间戳计算以使用当前时区
  • 修复周时间戳计算中的时区偏移问题
  • 修复月份时间戳计算中的时区处理问题
  • 修复时间戳转换时区处理错误
  • 修复时间戳转换方法中的时区...
Read more