2011-02-25 19 views
6

tengo el siguiente C# propiedad de clase:XML matriz de cadenas deserializar como nombre diferente tipo

private List<string> _accountTypes; 

[XmlArray(ElementName = "accountTypes")] 
public List<string> AccountTypes 
{ 
    get { return _accountTypes; } 
    set { _accountTypes = value; } 
} 

que es inicializado como esto en el constructor de la clase:

_accountTypes  = new List<string>(new string[] { "OHGEE", "OHMY", "GOLLY", "GOLLYGEE" }); 

Cuando deserializado recibí este :

<accountTypes> 
    <string>OHGEE</string> 
    <string>OHMY</string> 
    <string>GOLLY</string> 
    <string>GOLLYGEE</string> 
</accountTypes> 

Me gustaría si pudiera conseguir th es:

<accountTypes> 
    <accountType>OHGEE</accountType> 
    <accountType>OHMY</accountType> 
    <accountType>GOLLY</accountType> 
    <accountType>GOLLYGEE</accountType> 
</accountTypes> 

Sin crear una subclase del tipo "accountType", ¿cómo se puede hacer esto? ¿Hay alguna propiedad de atributo XML que pueda usarse para obtener lo que necesito?

Respuesta

11

Creo que está buscando el [XmlArrayItem] Atributo.

Prueba esto:

[XmlArray(ElementName = "accountTypes")] 
[XmlArrayItem("accountType")] 
public List<string> AccountTypes 
{ 
    get { return _accountTypes; } 
    set { _accountTypes = value; } 
} 
+0

Esa fue la respuesta que estaba buscando, muchas gracias !!! –

+0

+1 me ayudó también. tvm –

Cuestiones relacionadas