如何强制 JSonSerialiser 处理引用循环



我正在尝试配置 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 跳过它。

最新更新