我正在尝试配置 SignalR JSon 序列化程序以处理对象图中的引用循环。我在SO上看到了类似的问题,并从那里借用了下面的代码。
以下是配置服务方法的相关部分:
services.AddSignalR().AddJsonProtocol(options =>
{
options.PayloadSerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
options.PayloadSerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Serialize;
});
遗憾的是,即使使用此配置,尝试在线上发送数据也会引发以下异常:
检测到类型为"A.B.C.Vehicle"的属性"车辆"的自引用循环。路径。。。
显然这段代码还不够,但我不知道该怎么做。
任何帮助表示赞赏。
将 ShouldSerializePROPERTYNAME 条目添加到模型源文件中:
public bool ShouldSerializeVehicule()
{
return false;
}
或将属性[JsonIgnore]
应用于车辆。
这告诉 Json 跳过它。