Sha*_*ler 6 c# json.net signalr
您好我使用的是signalR 2.02,我无法在客户端获取正确的派生类.
我有以下情况
Class A {}
Class B : A{}
Class Other
{
public A _member {get;set}
}
Other instance = new Other() { _member = new B()}
Run Code Online (Sandbox Code Playgroud)
我将我的实例从集线器发送到客户端,我希望在客户端我会看到_member类型为B,但我将其视为A.
我已经尝试在服务器端更改序列化程序,如下所示,但没有效果
var serializer = new JsonSerializer()
{
TypeNameHandling = TypeNameHandling.All,
};
GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => serializer);
Run Code Online (Sandbox Code Playgroud)
这就是我通过定义序列化程序在需要时包含完整类型来设法解决的方法(默认值是不包含它们)。
在服务器端:
var serializer = GlobalHost.DependencyResolver.GetService(typeof(JsonSerializer)) as JsonSerializer;
serializer.TypeNameHandling = TypeNameHandling.Auto;
GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => serializer);
Run Code Online (Sandbox Code Playgroud)
在客户端:
_connection = new HubConnection(http://localhost:8080);
_hubProxy = _connection.CreateHubProxy("MyHub");
_hubProxy.JsonSerializer.TypeNameHandling = Newtonsoft.Json.TypeNameHandling.Auto;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1215 次 |
| 最近记录: |