C# 如何将此xml数组序列化为类中的属性?
这是我的xmlC# 如何将此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 =
[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; }
}