2008-11-17 6 views
1

J'ai la classe suivanteComment puis-je spécifier le nom de l'élément lorsqu'un objet sérialise

[XmlRoot(ElementName= "webSites")] //No capital w at the beginning 
public class WebSites : List<WebSite> 
{ 

} 

public class WebSite 
{ 
    [XmlAttribute("name")] 
    public string Name { set; get; } 
    [XmlAttribute("url")] 
    public String Url { set; get; } 
} 

c'est sérialisé à

<?xml version="1.0" encoding="DOS-862"?> 
<webSites xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http: 
//www.w3.org/2001/XMLSchema"> 
    <WebSite name="nice website" url="mydomain.com" /> 

ce qui est presque correct mais je veux que WebSite (Avec un capital) sera webSite (pas de capital) Je sais que je ne peux spécifier cela que pour la racine, mais comment puis-je pour un membre interne?

Répondre

3
[XmlType("webSite")] 
public class WebSite {...} 

ou pour contrôler une propriété de collection sur une classe d'emballage:

[XmlArrayItem("webSite")] 
[XmlArray("sites")] 
public WebSites Sites { get; set; } 
+0

Merci, je cherchais tous les attributs, mais ne se rendent pas compte qu'il était si facile :-) –