【发布时间】:2019-12-04 21:11:21
【问题描述】:
我正在传递从公共类派生的类。我发现,尽管传递了反序列化有效数据,但集线器不尊重 TypeNameHandling 并且完全忽略了 JSON 的 $type。无论我尝试什么,它都会反序列化为基类。
我去拿了我发送到集线器的 JSON,将它作为字符串粘贴到集线器代码中,然后使用 JsonConvert.Deserialize 查看会发生什么,并将其正确反序列化为我的派生对象。
在我的创业中,我有
JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Auto
};
我不确定这是否真的被使用了,所以我创建了一个测试 JSON 转换器并对 CanRead 属性进行了调试(我返回了一个静态 false)。那被击中了。这也允许我的字符串反序列化工作。
那么,集线器有什么不同之处,使得除了集线器之外的一切似乎都正常工作?
【问题讨论】:
标签: json json.net signalr asp.net-core-signalr