gpt4 book ai didi

c# - 我应该如何处理 C# 到 JSON 序列化和循环引用?

转载 作者:太空狗 更新时间:2023-10-30 01:25:42 24 4
gpt4 key购买 nike

我正在使用 System.Web.Extentions DLL 中包含的 System.Web.Script.Serialization.JavaScriptSerializer。我有几个循环引用,例如基本的多对多关系和父子关系。我该如何处理这些?我们的一个想法是用外键替换实际的对象引用。例如,而不是这个:

public class Node {
public Node Parent { get; set; }
public ICollection<Node> Children { get; set; }
}

我们会这样做:

public class Node {
public long ParentID { get; set; }
public ICollection<long> ChildrenIDs { get; set; }
}

我考虑过使用 ScriptIgnore 属性,但您如何将它用于多对多关系?意见和建议将不胜感激。谢谢!

编辑:这里有一些多对多关系的示例类。

public class Student {
public long StudentID { get; private set; }
public ICollection<Class> Classes { get; set; }
}

public class Class {
public long ClassID { get; private set; }
public ICollection<Student> Students { get; set; }
}

最佳答案

通常的方法是将 [ScriptIgnore] 与父节点引用一起使用,例如:

public class Node {
[ScriptIgnore]
public Node Parent { get; set; }
public ICollection<Node> Children { get; set; }
}

关于c# - 我应该如何处理 C# 到 JSON 序列化和循环引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6387346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com