为什么我们需要防止循环对象引用
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
}
}
}
}
}
我是新手。你能给我解释一下为什么"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
}
}
}
}
}