2017-04-19 40 views
0
[Serializable] 
public class CampoAuxiliar 
{ 
    private string descripcionAuxiliar; 
    private DateTime fechaAuxiliar; 
    private ArrayList opcion; 

    public CampoAuxiliar() { } 

    [XmlElement(ElementName = "descripcionAuxiliar", Type = typeof(string))] 
    public string DescripcionAuxiliar 
    { 
     get { return descripcionAuxiliar; } 
     set { descripcionAuxiliar = value; } 
    } 

    [XmlElement(ElementName = "fechaHabilitacion", Type = typeof(DateTime))] 
    public DateTime FechaAuxiliar 
    { 
     get { return fechaAuxiliar; } 
     set { fechaAuxiliar = value; } 
    } 

    [XmlArrayItem(ElementName = "opcion", Type = typeof(Opcion))] 
    [XmlArray(ElementName = "AuxiliarA")] 
    public ArrayList Opcion 
    { 
     get { return opcion; } 
     set { opcion = value; } 
    } 
} 

这是我的XML如何将此xml数组序列化为我的类中的某个属性?

- <auxiliarA> 
    <descripcionAuxiliar>Campo A</descripcionAuxiliar> 
    <fechaHabilitacion>2017-04-19</fechaHabilitacion> 
+ <opcion> 
    <codigoOpcion>01</codigoOpcion> 
    <descripcionOpcion>1</descripcionOpcion> 
    </opcion> 
+ <opcion> 
    <codigoOpcion>02</codigoOpcion> 
    <descripcionOpcion>2</descripcionOpcion> 
    </opcion> 
+ <opcion> 
    <codigoOpcion>03</codigoOpcion> 
    <descripcionOpcion>3</descripcionOpcion> 
    </opcion> 
</auxiliarA> 

我的问题是我无法弄清楚如何将“opcion”数组序列化到类的ArrayList的opcion。 在这种情况下,它的工作,妥善分配其他节点除了ArrayList的一个返回我数= 0

+1

你试过用[XmlElement(ElementName =“opcion”)]简单地装饰Opcion属性吗?它为我工作。 – noriMonsta

+0

OMG这个工作!非常感谢你,我一直在努力解决它,尝试一切,但显而易见。再次谢谢你! – Gonza

回答

0

您可以通过修改CampoAuxiliar类,如下所示:

[XmlRoot("auxiliarA")] 
[XmlType("auxiliarA")] 
public class CampoAuxiliar 
{ 
    private string descripcionAuxiliar; 
    private DateTime fechaAuxiliar; 

    public CampoAuxiliar() { } 

    [XmlElement(ElementName = "descripcionAuxiliar", Type = typeof(string))] 
    public string DescripcionAuxiliar 
    { 
     get { return descripcionAuxiliar; } 
     set { descripcionAuxiliar = value; } 
    } 

    [XmlElement(ElementName = "fechaHabilitacion", Type = typeof(DateTime))] 
    public DateTime FechaAuxiliar 
    { 
     get { return fechaAuxiliar; } 
     set { fechaAuxiliar = value; } 
    } 

    private ArrayList opcion; 

    [XmlElement("opcion", Type = typeof(Opcion))] 
    public ArrayList Opcion 
    { 
     get { return opcion; } 
     set { opcion = value; } 
    } 
} 

此外,您应该更换ArrayListList<Opcion>

private List<Opcion> opcion; 

    [XmlElement("opcion")] 
    public List<Opcion> Opcion 
    { 
     get { return opcion; } 
     set { opcion = value; } 
    } 

注:

样本fiddle

相关问题