2010-09-29 8 views
11

Compte tenu: -sérialisation xml spécifier xmlelement et XmlAttribute ensemble

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

    [XmlElement] 
    public string Publisher; 

    [XmlElement] 
    public string PublisherReference; 
} 

Lorsque sérialisé XML donnera

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

Comment pourrais-je obtenir PublisherReference comme un attribut de Publisher - par exemple

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

Répondre

16
[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 m'a battu à la réponse – azheglov

+0

Merci - qui le fera, mais une façon de le faire sans créer de nouvelles classes - attributs juste peut-être? Pas que je veux lune sur un bâton ou quoi que ce soit ...;) – Ryan

+0

Malheureusement, il n'y a aucun moyen de le faire (dans la mesure où je sais) sans classe supplémentaire –

Questions connexes