C#如何解决圆形对象引用

Jam*_*mmy 3 c# serialization object

我遇到了我认为可能是我的代码设计的一个主要问题,我希望有人可以向我解释我将如何解决这个问题.

我有2个类,每个类都有另一个类的属性创建循环引用.我计划序列化这些类并使用XSLT格式化输出,但我假设由于循环引用而失败.

public class Book
{
  public BookShop TheShop = new BookShop();
}
public class BookShop
{
  list<Book> Books = new list<Book>();
}
Run Code Online (Sandbox Code Playgroud)

因此,从这个例子中,每本书都将出现在书店中,每个书店都会有很多书.如果我序列化书店,它将序列化每本书,然后序列化书店等等.我该怎么处理?

Cod*_*aos 6

TheShop使用属性标记以防止其序列化.

[XmlIgnore] 使用默认的序列化程序.

http://www.codeproject.com/KB/XML/GameCatalog.aspx

可能只是你的例子的问题,而不是你的真实代码:不要使用公共字段而是属性.我认为XmlSerializer甚至没有序列化公共领域.