NewLife/X

v11.14.2026.0402 序列化:SpanWriter流模式+ISpanSerializable零拷贝增强+DbTable Span序列化+长度前缀读写+序列化配置Apply复用;JSON:JsonElement类型转换+ExtendableConverter重构+多特性属性名映射+IgnoreDataMember/XmlIgnore剔除;网络:LengthFieldCodec/IPacket多包链增强+SplitDataCodec修复;对象池新增GetAsync异步借出;Reflect热点路径全面优化;新增IServiceResolver服务解析器;DefaultUserAgent支持URL编码非ASCII字符
石头 authored at 2026-04-02 16:14:33
576c2c7
Tree
1 Parent(s) 66cd55c
Summary: 2 changed files with 44 additions and 2 deletions.
Modified +42 -0
Modified +2 -2
Modified +42 -0
diff --git a/ChangeLog.md b/ChangeLog.md
index 59f9f5d..60ac86e 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,47 @@
 # NewLife.Core 版本更新记录
 
+## v11.14.2026.0402 (2026-04-02)
+
+### 序列化增强
+- **SpanWriter 流模式**:SpanWriter 支持 Stream 写入,OwnerPacket/SpanSerializer 支持 Stream 零拷贝双路径,优化大数据序列化
+- **ISpanSerializable 增强**:增强 `ISpanSerializable` 支持,编码器可直接处理 `ISpanSerializable` 接口对象,提升序列化性能
+- **DbTable Span 序列化**:支持 DbTable 的 Span 序列化与反序列化
+- **长度前缀读写**:支持长度前缀数据/字符串读写,优化 `WriteEncodedInt` 空间分配
+- **序列化配置重构**:重构序列化配置,新增 `Apply` 方法支持配置复用
+- **高级二进制序列化**:零拷贝能力增强
+
+### JSON 增强
+- **JsonElement 类型转换**:支持 `JsonElement` 的类型转换扩展
+- **ExtendableConverter 重构**:重构并增强 `ExtendableConverter`,提升兼容性
+- **属性名映射优化**:优化 JSON 属性名映射,支持多特性叠加与命名策略
+- **成员忽略特性**:剔除标记了 `IgnoreDataMember`/`XmlIgnore` 特性的属性,与 .NET 标准行为对齐
+
+### 网络层优化
+- **LengthFieldCodec 增强**:功能增强,测试覆盖完善
+- **IPacket 多包链**:优化 IPacket 多包链操作性能与接口规范
+- **SplitDataCodec 修复**:修复发送数据时未追加分割字节的 Bug
+
+### 对象池增强
+- **异步借出**:引入对象池 `GetAsync` 能力,支持高并发场景下的异步资源等待
+
+### 反射与性能
+- **Reflect 全面优化**:反射性能全面优化,缓存委托路径,热点路径零反射
+- **内存池优化**:数组初始化现代化,使用内存池减少 GC 压力
+- **TarFile 性能**:Span 化头部读写与补零复用,提升压缩处理性能
+
+### 配置与服务
+- **IServiceResolver**:新增服务解析器 `IServiceResolver` 接口及配置实现,支持多源服务发现
+
+### 工具类
+- **DefaultUserAgent**:支持对非 ASCII 字符进行 URL 编码,避免请求头异常
+- **深拷贝优化**:调整数组、字典的深拷贝逻辑
+- **StringHelper.TrimStart 标记过期**:标记 `TrimStart(String, String)` 为过时,迁移至标准 API;优化 `PathHelper` 路径分隔符处理
+
+### Bug 修复
+- **[fix]** 在 SqlServer 批量写入时,`fields` 可能为空数组导致异常
+
+---
+
 ## v11.12.2026.0301 (2026-03-01)
 
 ### 序列化增强
Modified +2 -2
diff --git a/NewLife.Core/NewLife.Core.csproj b/NewLife.Core/NewLife.Core.csproj
index d2869a4..d7fb299 100644
--- a/NewLife.Core/NewLife.Core.csproj
+++ b/NewLife.Core/NewLife.Core.csproj
@@ -7,7 +7,7 @@
     <Description>Core library of NewLife framework. Provides high-performance infrastructure for building scalable applications: logging (file/network), configuration (XML/JSON/HTTP), cache (memory/distributed), network (TCP/UDP/HTTP/WebSocket), serialization (binary/XML/JSON), APM tracing, IoC container, actor model, timer scheduler, plugin framework, and more. Supports .NET Framework 4.5 to .NET 10. 核心组件库,为构建可扩展应用程序提供高性能基础设施。提供日志(文件/网络)、配置(XML/JSON/HTTP)、缓存(内存/分布式)、网络(TCP/UDP/HTTP/WebSocket)、序列化(Binary/XML/JSON)、APM性能追踪、对象容器、并行模型、定时调度、插件框架等。支持.NET Framework 4.5至.NET 10全版本。</Description>
     <Company>新生命开发团队</Company>
     <Copyright>©2002-2026 NewLife</Copyright>
-    <VersionPrefix>11.13</VersionPrefix>
+    <VersionPrefix>11.14</VersionPrefix>
     <VersionSuffix>$([System.DateTime]::Now.ToString(`yyyy.MMdd`))</VersionSuffix>
     <Version>$(VersionPrefix).$(VersionSuffix)</Version>
     <FileVersion>$(Version)</FileVersion>
@@ -32,7 +32,7 @@
     <RepositoryUrl>https://github.com/NewLifeX/X</RepositoryUrl>
     <RepositoryType>git</RepositoryType>
     <PackageTags>新生命团队;X组件;NewLife;$(AssemblyName)</PackageTags>
-    <PackageReleaseNotes>新增高性能SpanSerializer零分配序列化;IPacket重构优化内存管理与切片性能;网络层SendMessageAsync去异步化与编解码器池化,NetServer实测23.4Gbps/1.4亿pkt/s;FileConfigProvider配置热加载重构为事件驱动+定时兜底;IOHelper新增异步精确/最少读取;DeferredQueue支持动态修改周期;MemoryCache单键Remove零分配</PackageReleaseNotes>
+    <PackageReleaseNotes>序列化:SpanWriter流模式+ISpanSerializable零拷贝增强+DbTable Span序列化+长度前缀读写+序列化配置Apply复用;JSON:JsonElement类型转换+ExtendableConverter重构+多特性属性名映射+IgnoreDataMember/XmlIgnore剔除;网络:LengthFieldCodec/IPacket多包链增强+SplitDataCodec修复;对象池新增GetAsync异步借出;Reflect热点路径全面优化;新增IServiceResolver服务解析器;DefaultUserAgent支持URL编码非ASCII字符</PackageReleaseNotes>
     <PackageLicenseExpression>MIT</PackageLicenseExpression>
     <PublishRepositoryUrl>true</PublishRepositoryUrl>
     <EmbedUntrackedSources>true</EmbedUntrackedSources>