XML序列化指定XMLELEMENT和xmlattribute一起

问题描述:

考虑: -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作为出版商的属性 - 例如

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

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

AZ打我的答案 – azheglov 2010-09-29 16:39:19

+0

感谢 - 这将做到这一点,但任何方式,而无需创建新类的事情 - 只属性可能?不是我想要一根棍子或任何东西......;) – Ryan 2010-09-29 16:43:48

+0

不幸的是,没有额外的课程没有办法做到这一点(据我所知) – 2010-10-04 15:27:17