XML到C#类的StackOverflowException
我试图在以下
XML代码的基础上在C#中创建一个类:
<?xml version="1.0" encoding="ISO-8859-1"?> <Catalog> <Book> <Title><TitleA>ORK</TitleA></Title> <Author>J.D. Salinger</Author> <Publisher>Little Brown and Company</Publisher> <Pub_Date>1951</Pub_Date> </Book> <Book> <Title><TitleA>NAA</TitleA></Title> <Author>Jan</Author> <Publisher>Jans forlag</Publisher> <Pub_Date>2011</Pub_Date> </Book> </Catalog> 我看过这个帖子XML to c# Question,但我一直无法解决问题.我的c#代码如下所示: public class Catalog { public BookClass Book { get { return Book; } set { Book = value; } } } public class BookClass { public TitleClass Title { get { return Title; } set { Title = value; } } public string Author { get { return Author; } set { Author = value; } } public string Publisher { get { return Publisher; } set { Publisher = value; } } public string Pub_Date { get { return Pub_Date; } set { Pub_Date = value; } } } public class TitleClass { public string TitleA { get { return TitleA; } set { TitleA = value; } } } 我收到以下错误消息:
我试图使用XML序列化器没有运气;我认为它与XML代码中存在sub子元素的事实有关.书 – >标题 – > TitleA.任何帮助将不胜感激. 更新1: 我以前尝试过这个解决方案,但后来我得到了这个错误:对象引用未设置为对象的实例.我在主类中运行的代码如下 Catalog book1 = new Catalog(); book1.Book.Author = "A"; book1.Book.Publisher = "A"; book1.Book.Pub_Date = "A"; 然后我将它们导入列表并使用Serializer创建一个新的XML文件. 不知道这是否有帮助. 更新2: 像这样: BookClass book1 = new BookClass(); book1.Author = "A"; book1.Publisher = "A"; book1.Pub_Date = "A"; book1.Title.TitleA = "A"; 我还有同样的问题.我不能成为book1.Title.TitleA,然后我必须这样做: TitleClass book2 = new TitleClass(); book2.TitleA = "A"; 但现在它们是两个不同的对象,book1和book2 ….它们基于两个不同的类,因此我不能使用它(列出对象,然后使它成为XML代码: List<BookClass,TitleClass> books = new List<BookClass,TitleClass>() { book1,book2 }; XmlSerializer x = new XmlSerializer(typeof(List<BookClass,TitleClass>),new XmlRootAttribute("TEST")); x.Serialize(Console.Out,books); 我想这样做,所以我得到我的XML代码,子子元素,就像我在第一篇文章中提到的那样. 感谢你目前的帮助 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |