Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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# 如何在C语言中将嵌套的XML文件反序列化为对象#_C#_Arrays_Xml_Serialization - Fatal编程技术网

C# 如何在C语言中将嵌套的XML文件反序列化为对象#

C# 如何在C语言中将嵌套的XML文件反序列化为对象#,c#,arrays,xml,serialization,C#,Arrays,Xml,Serialization,我遇到了一个非常复杂的XML结构,我认为它就像嵌套的2D数组。但我的定义似乎不起作用。 我有一个如下所示的Xml结构 <Rate> <GROUP> <GROUPNAME>Company</GROUPNAME> <COUNTY>Dawson</COUNTY> </GROUP> <EMPLOYEES> <MEMBERS> <MEMBER>

我遇到了一个非常复杂的XML结构,我认为它就像嵌套的2D数组。但我的定义似乎不起作用。 我有一个如下所示的Xml结构

<Rate>
<GROUP>
    <GROUPNAME>Company</GROUPNAME>
    <COUNTY>Dawson</COUNTY>
</GROUP>
<EMPLOYEES>
    <MEMBERS>
        <MEMBER>
            <SEQUENCENUM>1</SEQUENCENUM>
            <GENDER>M</GENDER>
            <RELATIONSHIP>Father</RELATIONSHIP>
        </MEMBER>
        <MEMBER>
            <SEQUENCENUM>2</SEQUENCENUM>
            <GENDER>F</GENDER>
            <RELATIONSHIP>Mother</RELATIONSHIP>
        </MEMBER>
    </MEMBERS>
    <MEMBERS>
        <MEMBER>
            <SEQUENCENUM>1</SEQUENCENUM>
            <GENDER>M</GENDER>
            <RELATIONSHIP>Father</RELATIONSHIP>
        </MEMBER>
        <MEMBER>
            <SEQUENCENUM>2</SEQUENCENUM>
            <GENDER>Y</GENDER>
            <RELATIONSHIP>Mother</RELATIONSHIP>
        </MEMBER>
    </MEMBERS>
</EMPLOYEES>

你们有什么好主意吗?对于此嵌套数组?

NestingLevel=1
添加到
XmlArrayItem
属性中

此类将反序列化您的XML

[Serializable]
[XmlType(AnonymousType = true)]
[XmlRoot(Namespace = "", IsNullable = false)]
public class Rate
{
    [XmlElement("GROUP")]
    public Group Group { get; set; }

    [XmlArrayItem("MEMBERS", IsNullable = false)]
    [XmlArrayItem("MEMBER", IsNullable = false, NestingLevel = 1)]
    public Member[][] EMPLOYEES { get; set; }
}

[XmlType(AnonymousType = true)]
public class Group
{
    [XmlElement("GROUPNAME")]
    public string Name { get; set; }

    [XmlElement("COUNTY")]
    public string Country { get; set; }
}

[XmlType(AnonymousType = true)]
public class Member
{
    [XmlElement("SEQUENCENUM")]
    public byte Sequencenum { get; set; }

    [XmlElement("GENDER")]
    public string Gender { get; set; }

    [XmlElement("RELATIONSHIP")]
    public string Relationship { get; set; }
}

谢谢,咖啡先生,真是太好了。我只是添加了另一个
[XmlArrayItem(ElementName=“MEMBERS”,NestedLevel=0)]
。真的很棒。
[XmlRoot("EMPLOYEES")]
public class Members
{
   [XmlArray("MEMBERS")]
   [XmlArrayItem("MEMBER", typeof(MemberInfo))]
   public List<MemberInfo> Members{get; set;}
}
[XmlRoot("Member")]
public class MemberInfo
{
    public string SequenceNum{get; set;}
    
    [XmlElement("GENDER")]
    public string Gender{get; set;}
    
    [XmlElement("RELATIONSHIP")]
    public string Relationship{get; set}
}
[Serializable]
[XmlType(AnonymousType = true)]
[XmlRoot(Namespace = "", IsNullable = false)]
public class Rate
{
    [XmlElement("GROUP")]
    public Group Group { get; set; }

    [XmlArrayItem("MEMBERS", IsNullable = false)]
    [XmlArrayItem("MEMBER", IsNullable = false, NestingLevel = 1)]
    public Member[][] EMPLOYEES { get; set; }
}

[XmlType(AnonymousType = true)]
public class Group
{
    [XmlElement("GROUPNAME")]
    public string Name { get; set; }

    [XmlElement("COUNTY")]
    public string Country { get; set; }
}

[XmlType(AnonymousType = true)]
public class Member
{
    [XmlElement("SEQUENCENUM")]
    public byte Sequencenum { get; set; }

    [XmlElement("GENDER")]
    public string Gender { get; set; }

    [XmlElement("RELATIONSHIP")]
    public string Relationship { get; set; }
}