XML序列化:如何同时指定XmlElement和XmlAttribute?

13

给定:

[XmlRoot("Book")]
public class Book
{
   [XmlAttribute]
   public string Title;

   [XmlElement]
   public string Publisher;

   [XmlElement]
   public string PublisherReference;
}

序列化为 XML 后将会给出:

<Book Title="My Book">
   <Publisher>Some Publisher</Publisher>
   <PublisherReference>XYZ123</PublisherReference>
</Book>
我怎样才能获得Publisher的PublisherReference属性作为一个属性,例如:
<Book Title="My Book">
   <Publisher Reference="XYZ123">Some Publisher</Publisher>
</Book>
1个回答

18
[XmlRoot("Book")]
public class Book
{
   [XmlAttribute]
   public string Title;

   [XmlElement]
   public Publisher Publisher;
}

[Serializable]
public class Publisher
{
  [XmlText]
  public string Value;

  [XmlAttribute]
  public string Reference;
}

谢谢 - 这样就可以了,但有没有不创建新类的方法 - 只是属性可能?并不是我想要月亮上的东西... ;) - Ryan
很遗憾,据我所知,没有其他类的情况下无法完成这个任务。 - Adrian Zanescu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接