我试图在以下
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; } } }
我收到以下错误消息:
An unhandled exception of type ‘System.StackOverflowException’ occurred in CADtoXML.exe
我试图使用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代码,子子元素,就像我在第一篇文章中提到的那样.
感谢你目前的帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。