为什么我们需要防止循环对象引用

why do we need to prevent Circular Object References

我是新手。你能给我解释一下为什么"Circular REference"是一件坏事吗,它可能带来的坏结果是什么?

如果你将其序列化为 JSON 那么你将得到一个无限的 JSON 文档,因为此时序列化程序将 CTest 对象序列化为 JSON 并且他到达 Other 属性 这个 属性 被它自己引用并且序列化器开始序列化这个对象。还有一个。

public class CTest
{
    public CTest Other { get; set; }
    public string Description { get; set; }
}

[Test]
public void Circulartest()
{
    CTest instance = new CTest();
    instance.Description = "Hello";
    instance.Other = instance;

    JsonConvert.SerializeObject(instance);
}

这将导致以下 JSON 文件

{
    "Description": "Hello"
    "Other":
    {
        "Description": "Hello"
        "Other":
        {
            "Description": "Hello"
            "Other":
            {
                "Description": "Hello"
                "Other":
                {
                    ....never ending story
                }
            }
        }
    }
}