Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 反序列化XmlArray未填充_C#_Deserialization - Fatal编程技术网

C# 反序列化XmlArray未填充

C# 反序列化XmlArray未填充,c#,deserialization,C#,Deserialization,我正在尝试使用C从API反序列化XML响应。我无法获取ItemList元素的值。我能够得到除ItemList之外的其他元素。下面是示例XML,下面是类,最后是序列化函数 XML: 序列化程序: 请尝试以下方法。由于ItemList/Item不是XmlArray,因此需要将其定义为简单的XmlElement 响应类的itemlist中的xmlarray…以及一些修改,如从itemlist类中删除xmlroot…以及在item属性中删除xmlarray…不仅仅是我上面所说的所有内容…元素1将使用您在

我正在尝试使用C从API反序列化XML响应。我无法获取ItemList元素的值。我能够得到除ItemList之外的其他元素。下面是示例XML,下面是类,最后是序列化函数

XML:

序列化程序:


请尝试以下方法。由于ItemList/Item不是XmlArray,因此需要将其定义为简单的XmlElement


响应类的itemlist中的xmlarray…以及一些修改,如从itemlist类中删除xmlroot…以及在item属性中删除xmlarray…不仅仅是我上面所说的所有内容…元素1将使用您在xelement的ctor中提供的名称创建…如果我想从XML以及itemlist中获取元素1,该怎么办XMLArray?我不太明白你的意思??好吧,我按照你的第一条评论中的建议,将XMLArray放在responseclass的itemlist中。但是,itemlist是一个包含一个列表和另一个元素的类。如何获得xmlarray以及另一个元素?
<Root xmlns="http://whatever">
    <Child1>
        <ChildElement1>16f09999</ChildElement1>
    </Child1>
    <ItemList>
        <Element1>
        ...
        </Element1>

        <Item>
            <ItemElem1>12345567</ItemElem1>
            <ItemElem2>12356465784</ItemElem2>
           ...
            <ItemAttributes>
            ...
            </ItemAttributes>
        </Item>
        <Item>
        ...
        </Item>
    </ItemList>
</Root>

[Serializable()]
[System.Xml.Serialization.XmlRoot("Root")]
public class ResponseClass
{
    [System.Xml.Serialization.XmlElement("Child1")]
    public OperationRequest OperationRequest { get; set; }

    [System.Xml.Serialization.XmlElement("ItemList")]
    public ItemList ItemList { get; set; }
}
[Serializable()]
[System.Xml.Serialization.XmlRoot(ElementName = "ItemList")]
public class ItemList
{
    [XmlArray("ItemList")]
    [XmlArrayItem("Item", typeof(Item))]
    public Item item { get; set; }

    [System.Xml.Serialization.XmlElement("Element1")]
    public int Element1 { get; set; }

}
XmlSerializer serializer = new XmlSerializer(typeof(ResponseClass));

StreamReader reader = new StreamReader(path);
response = (ResponseClass)serializer.Deserialize(reader);
reader.Close();
[Serializable()]
[System.Xml.Serialization.XmlRoot(ElementName = "Root", Namespace = "http://whatever")]
public class ResponseClass
{
    [System.Xml.Serialization.XmlElement("Child1")]
    public OperationRequest OperationRequest { get; set; }

    [System.Xml.Serialization.XmlElement("ItemList")]
    public ItemList ItemList { get; set; }
}

[Serializable()]
[System.Xml.Serialization.XmlRoot(ElementName = "ItemList", Namespace = "http://whatever")]
public class ItemList
{
    [System.Xml.Serialization.XmlElement("Item")]
    public Item[] Items { get; set; }

    [System.Xml.Serialization.XmlElement("Element1")]
    public int Element1 { get; set; }
}