[fix] 通过Http请求ApiServer时,服务端按json返回,不要走IAccessor。对于Http来说,实现了IAccessor的实体类不需要序列化为IPacket智能大石头 authored at 2026-01-08 23:44:08
diff --git a/NewLife.Remoting/Http/HttpEncoder.cs b/NewLife.Remoting/Http/HttpEncoder.cs
index 7a9ba79..e41ff0b 100644
--- a/NewLife.Remoting/Http/HttpEncoder.cs
+++ b/NewLife.Remoting/Http/HttpEncoder.cs
@@ -29,7 +29,9 @@ public class HttpEncoder : EncoderBase, IEncoder
//if (value == null) return null;
if (value is IPacket pk) return pk;
- if (value is IAccessor acc) return acc.ToPacket();
+
+ //!!! 对于Http来说,实现了IAccessor的实体类不需要序列化为IPacket
+ //if (value is IAccessor acc) return acc.ToPacket();
// 不支持序列化异常
if (value is Exception ex) value = ex.GetTrue().Message;
diff --git a/NewLife.Remoting/IApiHandler.cs b/NewLife.Remoting/IApiHandler.cs
index d599442..4417785 100644
--- a/NewLife.Remoting/IApiHandler.cs
+++ b/NewLife.Remoting/IApiHandler.cs
@@ -126,7 +126,7 @@ public class ApiHandler : IApiHandler
}
// 特殊处理IAccessor返回值,直接进行二进制序列化
- if (rs is IAccessor accessor) rs = accessor.ToPacket();
+ if (rs is IAccessor accessor && msg is not HttpMessage) rs = accessor.ToPacket();
}
catch (ThreadAbortException) { throw; }
catch (Exception ex)
diff --git a/NewLife.Remoting/NewLife.Remoting.csproj b/NewLife.Remoting/NewLife.Remoting.csproj
index 1abfa4e..920f7f6 100644
--- a/NewLife.Remoting/NewLife.Remoting.csproj
+++ b/NewLife.Remoting/NewLife.Remoting.csproj
@@ -54,7 +54,7 @@
</ItemGroup>
<ItemGroup>
- <PackageReference Include="NewLife.Core" Version="11.10.2026.101" />
+ <PackageReference Include="NewLife.Core" Version="11.10.2026.108-beta1002" />
</ItemGroup>
<ItemGroup>
diff --git a/Samples/IoTZero/IoTZero.csproj b/Samples/IoTZero/IoTZero.csproj
index 846fade..89a9d77 100644
--- a/Samples/IoTZero/IoTZero.csproj
+++ b/Samples/IoTZero/IoTZero.csproj
@@ -23,12 +23,12 @@
</ItemGroup>
<ItemGroup>
- <PackageReference Include="NewLife.Cube.Core" Version="6.7.2025.1226-beta0605" />
+ <PackageReference Include="NewLife.Cube.Core" Version="6.8.2026.103-beta0958" />
<PackageReference Include="NewLife.IoT" Version="2.7.2026.102" />
<PackageReference Include="NewLife.MQTT" Version="2.3.2026.102" />
- <PackageReference Include="NewLife.Redis" Version="6.4.2026.102" />
+ <PackageReference Include="NewLife.Redis" Version="6.4.2026.104" />
<PackageReference Include="NewLife.Stardust.Extensions" Version="3.6.2026.102" />
- <PackageReference Include="NewLife.XCode" Version="11.23.2026.102" />
+ <PackageReference Include="NewLife.XCode" Version="11.23.2026.106-beta0914" />
</ItemGroup>
<ItemGroup>
diff --git a/Samples/Zero.RpcServer/ClientTest.cs b/Samples/Zero.RpcServer/ClientTest.cs
index 4c19886..3662ceb 100644
--- a/Samples/Zero.RpcServer/ClientTest.cs
+++ b/Samples/Zero.RpcServer/ClientTest.cs
@@ -113,5 +113,9 @@ static class ClientTest
var state2 = Rand.NextString(8);
var infs = await client.PostAsync<IDictionary<String, Object>>("api/info", new { state, state2 });
client.WriteLog("服务端信息:{0}", infs.ToJson(true));
+
+ client.WriteLog("获取用户信息");
+ var user = await client.GetAsync<User>("user/findbyid", new { id = 1 });
+ client.WriteLog("用户信息:{0}", user.ToJson(true, false, false));
}
}
diff --git a/Samples/Zero.RpcServer/Program.cs b/Samples/Zero.RpcServer/Program.cs
index 131cdd2..eaed88b 100644
--- a/Samples/Zero.RpcServer/Program.cs
+++ b/Samples/Zero.RpcServer/Program.cs
@@ -4,6 +4,7 @@ using NewLife.Log;
using NewLife.Model;
using NewLife.Remoting;
using Stardust;
+using XCode;
using Zero.RpcServer;
// 启用控制台日志,拦截所有异常
@@ -21,6 +22,8 @@ services.AddSingleton<ICacheProvider, RedisCacheProvider>();
// 引入Redis,用于消息队列和缓存,单例,带性能跟踪。一般使用上面的ICacheProvider替代
//services.AddRedis("127.0.0.1:6379", "123456", 3, 5000);
+EntityFactory.InitAll();
+
var port = 8080;
// 实例化RPC服务端,指定端口,同时在Tcp/Udp/IPv4/IPv6上监听
diff --git a/Samples/Zero.RpcServer/Zero.RpcServer.csproj b/Samples/Zero.RpcServer/Zero.RpcServer.csproj
index a302cdb..7402dbc 100644
--- a/Samples/Zero.RpcServer/Zero.RpcServer.csproj
+++ b/Samples/Zero.RpcServer/Zero.RpcServer.csproj
@@ -20,9 +20,9 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="NewLife.Redis" Version="6.4.2026.102" />
+ <PackageReference Include="NewLife.Redis" Version="6.4.2026.104" />
<PackageReference Include="NewLife.Stardust" Version="3.6.2026.102" />
- <PackageReference Include="NewLife.XCode" Version="11.23.2026.102" />
+ <PackageReference Include="NewLife.XCode" Version="11.23.2026.106-beta0914" />
</ItemGroup>
<ItemGroup>
diff --git a/Samples/ZeroServer/ZeroServer.csproj b/Samples/ZeroServer/ZeroServer.csproj
index cbeed7c..57fbd04 100644
--- a/Samples/ZeroServer/ZeroServer.csproj
+++ b/Samples/ZeroServer/ZeroServer.csproj
@@ -19,10 +19,10 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="NewLife.Cube.Core" Version="6.7.2025.1226-beta0605" />
- <PackageReference Include="NewLife.Redis" Version="6.4.2026.102" />
+ <PackageReference Include="NewLife.Cube.Core" Version="6.8.2026.103-beta0958" />
+ <PackageReference Include="NewLife.Redis" Version="6.4.2026.104" />
<PackageReference Include="NewLife.Stardust.Extensions" Version="3.6.2026.102" />
- <PackageReference Include="NewLife.XCode" Version="11.23.2026.102" />
+ <PackageReference Include="NewLife.XCode" Version="11.23.2026.106-beta0914" />
</ItemGroup>
<ItemGroup>
diff --git a/Test/Test.csproj b/Test/Test.csproj
index e7d17f3..42ea18e 100644
--- a/Test/Test.csproj
+++ b/Test/Test.csproj
@@ -10,7 +10,7 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="NewLife.Core" Version="11.10.2026.101" />
+ <PackageReference Include="NewLife.Core" Version="11.10.2026.108-beta1002" />
</ItemGroup>
<ItemGroup>
diff --git a/XUnitTest/XUnitTest.csproj b/XUnitTest/XUnitTest.csproj
index dfb6605..ad7e021 100644
--- a/XUnitTest/XUnitTest.csproj
+++ b/XUnitTest/XUnitTest.csproj
@@ -12,7 +12,7 @@
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="Moq" Version="4.20.72" />
- <PackageReference Include="NewLife.Core" Version="11.10.2026.101" />
+ <PackageReference Include="NewLife.Core" Version="11.10.2026.108-beta1002" />
<PackageReference Include="NewLife.UnitTest" Version="1.1.2026.102" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">