如何将带有循环引用的对象结构序列化为Json?

Ang*_*ker 5 c# wcf serialization json

我有一个像这样的对象结构:

public class Proposal {
    public List<ProposalLine> Lines { get; set; }
    public string Title { get; set; }
}

public class ProposalLine {
    public Proposal Proposal { get; set; }  // <- Reference to parent object
}
Run Code Online (Sandbox Code Playgroud)

我尝试将Proposal序列化为Json,它告诉我有一个循环引用,这是正确的.
不幸的是,我无法触摸对象,因为它们位于另一个项目的引用DLL中 - 否则我会更改它们.

有没有办法序列化为Json并忽略圆形属性?

Mic*_*haC 7

使用Newtonsoft.Json(默认的.net json序列化程序)并设置

JsonSerializerSettings settings = new JsonSerializerSettings
{
    PreserveReferencesHandling = PreserveReferencesHandling.Objects
};
var serializer = JsonSerializer.Create(settings);
Run Code Online (Sandbox Code Playgroud)

如果您正在开发MVC应用程序,也可以全局定义此变量...