2008-11-24 2 views
3

J'ai un fichier de configuration XML avec une collection de chaînes comme ceci:De Sérialiser une liste de chaînes sans créer de nouvelle classe?

<SomeSetting>value</SomeSetting> 
<SomeOtherSetting>value</SomeOtherSetting> 
<TypesOfThings> 
    <Thing>Type 1</Thing> 
    <Thing>Type 2</Thing> 
    <Thing>Type 3</Thing> 
</TypesOfThings> 

Ces « choses » deviennent des options à l'extrémité avant de l'application pour l'utilisateur de choisir.

Ma question est de savoir si je dois créer une classe d'objets afin d'utiliser la sérialisation correctement ou est-ce qu'il y a un moyen d'utiliser des attributs pour lire les chaînes directement dans une liste?

Par exemple (corps et vars privés enlevés par souci de concision, c'est .NET 2.0):

[Serializable] 
public class Config 
{ 
    public string SomeSetting 
    { 
     get; 
     set; 
    } 


    public string SomeOtherSetting 
    { 
     get; 
     set; 
    } 

    public List<string> TypesOfThings 
    { 
     get; 
     set; 
    } 
} 

Répondre

7

Vous spécifiez la façon dont il devrait être publié en feuilleton en utilisant la XmlArrayAttribute:

[XmlArray(ElementName = "TypesOfThings")] 
[XmlArrayItem(ElementName="Thing")] 
public List<string> TypesOfThings 
{ 
    get; 
    set; 
} 

Edit: le nom des articles est l'actualité spécifiée en utilisant le XmlArrayItemAttribute

Questions connexes