问题 xml序列化一起指定xmlelement和xmlattribute


鉴于: -

[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>

如何将PublisherReference作为Publisher的属性 - 例如

<Book Title="My Book">
   <Publisher Reference="XYZ123">Some Publisher</Publisher>
</Book>

12482
2017-09-29 16:10


起源



答案:


[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;
}

16
2017-09-29 16:37



AZ打败了我的答案 - azheglov
谢谢 - 这样做但是没有创建新类的任何方式 - 只是属性可能吗?不是说我想在棍子或任何东西上月亮......;) - Ryan
不幸的是,如果没有额外的课程,就没有办法做到这一点(据我所知) - Adrian Zanescu


答案:


[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;
}

16
2017-09-29 16:37



AZ打败了我的答案 - azheglov
谢谢 - 这样做但是没有创建新类的任何方式 - 只是属性可能吗?不是说我想在棍子或任何东西上月亮......;) - Ryan
不幸的是,如果没有额外的课程,就没有办法做到这一点(据我所知) - Adrian Zanescu