C# 如何将此xml数组序列化为类中的属性?

C# 如何将此xml数组序列化为类中的属性?,c#,arrays,xml,serialization,arraylist,C#,Arrays,Xml,Serialization,Arraylist,这是我的xml [Serializable] public class CampoAuxiliar { private string descripcionAuxiliar; private DateTime fechaAuxiliar; private ArrayList opcion; public CampoAuxiliar() { } [XmlElement(ElementName = "descripcionAuxiliar", Type =

这是我的xml

[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; }
    }
}
-
坎波A
2017-04-19 
+ 
01
1.
+ 
02
2.
+ 
03
3.
我的问题是我不知道如何将“opcion”数组序列化到类的ArrayList opcion中。
在这种情况下,它可以正常工作并正确分配其他节点,除了返回me count=0的ArrayList节点。

您可以修改
CampouAsiliar
类,如下所示:

- <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>
此外,您应该将
数组列表
替换为
列表

私有列表选项;
[XmlElement(“opcion”)]
公共列表选项
{
获取{return opcion;}
设置{opcion=value;}
}
注:

  • 指示根元素名为
    ,表示要序列化集合而不使用外部容器元素

  • 有关为什么选择
    列表
    而不是
    阵列列表
    的一些讨论,请参阅和


示例。

您是否尝试过简单地用[xmlement(ElementName=“Opcion”)]装饰Opcion属性?这对我有用。天哪,这有用!非常感谢你,我一整天都在努力解决这个问题,除了显而易见的问题,我什么都试过了。再次感谢你!
[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; }
    }
}
    private List<Opcion> opcion;

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