You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SignalR使用自定义类时客户端接收值为null及相关异常排查

SignalR自定义类接收值为null且抛出序列化异常的原因

以下是导致该问题的常见原因:

  • 自定义类无无参数构造函数:SignalR默认使用System.Text.Json做序列化,这个序列化器要求目标类必须有无参构造函数,否则无法创建类实例,最终所有属性值为null,同时抛出序列化相关异常。
  • 属性访问修饰符非public:如果自定义类的属性是private、protected或者internal,JSON序列化器无法读写这些属性,自然得到的实例所有值都是null。
  • 服务端与客户端类属性大小写不匹配:默认的JSON序列化是区分大小写的,比如服务端类属性叫UserAge,客户端对应类的属性是userAge,就会匹配失败,导致值为null,同时触发解析异常。
  • 类包含不可序列化的成员:如果自定义类里有DateTimeOffset(未正确配置)、复杂嵌套对象(无对应序列化规则)或者未标记可序列化的特殊类型,序列化器处理不了就会抛出异常,也无法正确赋值属性。
  • SignalR序列化配置错误:如果手动修改了SignalR的JSON序列化配置,比如禁用了属性映射、修改了契约解析器,会导致序列化逻辑无法正确识别类的属性,进而出现值为null和异常。

内容的提问来源于stack exchange,提问作者kerekS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 03:15:35