C# 无法使用XMLSerializer反序列化子节点中的元素列表

C# 无法使用XMLSerializer反序列化子节点中的元素列表,c#,xmlserializer,C#,Xmlserializer,我有以下模式(部分已发布): 现在,我使用XSD2代码生成了以下类(只显示了其中的一部分): 名称空间查询yrsp { 使用制度; 使用系统诊断; 使用System.Xml.Serialization; 使用系统集合; 使用System.Xml.Schema; 使用系统组件模型; 使用System.Collections.Generic; 公众部分班级反应 { 私有字符串服务字段; 私有字符串操作字段; 私有字符串状态字段; 专用标题字段; 私有消息字段; 公众回应( { this.mESS

我有以下模式(部分已发布):


现在,我使用XSD2代码生成了以下类(只显示了其中的一部分):

名称空间查询yrsp
{
使用制度;
使用系统诊断;
使用System.Xml.Serialization;
使用系统集合;
使用System.Xml.Schema;
使用系统组件模型;
使用System.Collections.Generic;
公众部分班级反应
{
私有字符串服务字段;
私有字符串操作字段;
私有字符串状态字段;
专用标题字段;
私有消息字段;
公众回应(
{
this.mESSAGEField=新消息();
this.hEADERField=新标题();
}
公共字符串服务
{
得到
{
返回此.sERVICEField;
}
设置
{
this.sERVICEField=值;
}
}
公共字符串操作
{
得到
{
返回此.aCTIONField;
}
设置
{
this.aCTIONField=值;
}
}
公共字符串状态
{
得到
{
返回此.status字段;
}
设置
{
this.sTATUSField=值;
}
}
公共标头
{
得到
{
返回这个.hEADERField;
}
设置
{
this.hEADERField=值;
}
}
公共信息
{
得到
{
返回此.mESSAGEField;
}
设置
{
this.mESSAGEField=值;
}
}
}
公共部分类头
{
私有字符串成员_IDField;
私有字符串用户_IDField;
私有字符串rUN_NOField;
私有字符串tOT_ITEMSField;
私有字符串eRR_ITEMSField;
公共字符串成员\u ID
{
得到
{
返回此.mEMBER_IDField;
}
设置
{
this.mEMBER_IDField=值;
}
}
公共字符串用户ID
{
得到
{
返回此.uSER_IDField;
}
设置
{
this.uSER_IDField=值;
}
}
公共字符串运行号
{
得到
{
返回此.rUN\u NOField;
}
设置
{
this.rUN_NOField=值;
}
}
公共字符串总计项
{
得到
{
返回此.tOT_ITEMSField;
}
设置
{
this.tOT_ITEMSField=值;
}
}
公共字符串错误项
{
得到
{
返回this.eRR_ITEMSField;
}
设置
{
this.eRR_ITEMSField=值;
}
}
}
公共部分类消息
{
私有列表项字段;
公共信息()
{
this.itemsField=新列表();
}
公共清单项目
{
得到
{
返回此.itemsField;
}
设置
{
this.itemsField=值;
}
}
}
公共部分类项目
{
私有字符串查询\u REFERENCEField;
私有列表项字段;
私有字符串字段;
公共项目()
{
this.itemsField=新列表();
}
公众查询及参考
{
得到
{
返回此.inquiry\u REFERENCEField;
}
设置
{
this.u REFERENCEField=值;
}
}
公共清单项目
{
得到
{
返回此.itemsField;
}
设置
{
this.itemsField=值;
}
}
公共字符串序列
{
得到
{
返回此.seqField;
}
设置
{
this.seqField=值;
}
}
}
}
以下是我尝试反序列化的XML:

    <RESPONSE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="EnquiryRsp.xsd">
    <SERVICE>ENQUIRY</SERVICE>
    <ACTION>A_SC</ACTION>
    <STATUS>OK</STATUS>
    <HEADER>
        <MEMBER_ID>XXX</MEMBER_ID>
        <USER_ID>XXXXX</USER_ID>
        <RUN_NO>1</RUN_NO>
        <TOT_ITEMS>1</TOT_ITEMS>
        <ERR_ITEMS/>
    </HEADER>
    <MESSAGE>
        <ITEM>
            <ENQUIRY_REFERENCE>FOS000279511111UKU</ENQUIRY_REFERENCE>
            <RSP_REPORT>
                <ENQUIRY_TYPE>RV</ENQUIRY_TYPE>
                <REPORT_DATE>26/12/2007</REPORT_DATE>
                <ENQUIRY_NO>17248697</ENQUIRY_NO>
                <PRODUCT_TYPE>PLN</PRODUCT_TYPE>
                <NO_OF_APPLICANTS>1</NO_OF_APPLICANTS>
                <ACCOUNT_TYPE>S</ACCOUNT_TYPE>
                <ENQUIRY_REFERENCE>FOS000279511111UKU</ENQUIRY_REFERENCE>
                <AMOUNT>0.00</AMOUNT>
                <MBR_TYPE>FULL</MBR_TYPE>
                <MBR_STS>ACTIV</MBR_STS>
                <CONSUMER>      
                </CONSUMER>
                <DISCLAIMER>
                    <DI_TEXT></DI_TEXT>
                    <DI_TEXT_AR lang="ar"></DI_TEXT_AR>
                </DISCLAIMER>
            </RSP_REPORT>
        </ITEM>
    </MESSAGE>
</RESPONSE>

询问
理学士
好啊
XXX
XXXXX
1.
1.
FOS000279511111UKU
房车
26/12/2007
17248697
印尼国家电力公司
1.
s
FOS000279511111UKU
0
满满的
活动
我无法反序列化邮件中的项目列表。什么时候
    namespace EnquiryRsp
{
    using System;
    using System.Diagnostics;
    using System.Xml.Serialization;
    using System.Collections;
    using System.Xml.Schema;
    using System.ComponentModel;
    using System.Collections.Generic;


    public partial class RESPONSE
    {

        private string sERVICEField;

        private string aCTIONField;

        private string sTATUSField;

        private HEADER hEADERField;

        private MESSAGE mESSAGEField;

        public RESPONSE()
        {
            this.mESSAGEField = new MESSAGE();
            this.hEADERField = new HEADER();
        }

        public string SERVICE
        {
            get
            {
                return this.sERVICEField;
            }
            set
            {
                this.sERVICEField = value;
            }
        }

        public string ACTION
        {
            get
            {
                return this.aCTIONField;
            }
            set
            {
                this.aCTIONField = value;
            }
        }

        public string STATUS
        {
            get
            {
                return this.sTATUSField;
            }
            set
            {
                this.sTATUSField = value;
            }
        }

        public HEADER HEADER
        {
            get
            {
                return this.hEADERField;
            }
            set
            {
                this.hEADERField = value;
            }
        }

        public MESSAGE MESSAGE
        {
            get
            {
                return this.mESSAGEField;
            }
            set
            {
                this.mESSAGEField = value;
            }
        }
    }

    public partial class HEADER
    {

        private string mEMBER_IDField;

        private string uSER_IDField;

        private string rUN_NOField;

        private string tOT_ITEMSField;

        private string eRR_ITEMSField;

        public string MEMBER_ID
        {
            get
            {
                return this.mEMBER_IDField;
            }
            set
            {
                this.mEMBER_IDField = value;
            }
        }

        public string USER_ID
        {
            get
            {
                return this.uSER_IDField;
            }
            set
            {
                this.uSER_IDField = value;
            }
        }

        public string RUN_NO
        {
            get
            {
                return this.rUN_NOField;
            }
            set
            {
                this.rUN_NOField = value;
            }
        }

        public string TOT_ITEMS
        {
            get
            {
                return this.tOT_ITEMSField;
            }
            set
            {
                this.tOT_ITEMSField = value;
            }
        }

        public string ERR_ITEMS
        {
            get
            {
                return this.eRR_ITEMSField;
            }
            set
            {
                this.eRR_ITEMSField = value;
            }
        }
    }

    public partial class MESSAGE
    {

        private List<object> itemsField;

        public MESSAGE()
        {
            this.itemsField = new List<object>();
        }

        public List<object> Items
        {
            get
            {
                return this.itemsField;
            }
            set
            {
                this.itemsField = value;
            }
        }
    }

    public partial class ITEM
    {

        private string eNQUIRY_REFERENCEField;

        private List<object> itemsField;

        private string seqField;

        public ITEM()
        {
            this.itemsField = new List<object>();
        }

        public string ENQUIRY_REFERENCE
        {
            get
            {
                return this.eNQUIRY_REFERENCEField;
            }
            set
            {
                this.eNQUIRY_REFERENCEField = value;
            }
        }

        public List<object> Items
        {
            get
            {
                return this.itemsField;
            }
            set
            {
                this.itemsField = value;
            }
        }

        public string seq
        {
            get
            {
                return this.seqField;
            }
            set
            {
                this.seqField = value;
            }
        }
    }

  }
    <RESPONSE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="EnquiryRsp.xsd">
    <SERVICE>ENQUIRY</SERVICE>
    <ACTION>A_SC</ACTION>
    <STATUS>OK</STATUS>
    <HEADER>
        <MEMBER_ID>XXX</MEMBER_ID>
        <USER_ID>XXXXX</USER_ID>
        <RUN_NO>1</RUN_NO>
        <TOT_ITEMS>1</TOT_ITEMS>
        <ERR_ITEMS/>
    </HEADER>
    <MESSAGE>
        <ITEM>
            <ENQUIRY_REFERENCE>FOS000279511111UKU</ENQUIRY_REFERENCE>
            <RSP_REPORT>
                <ENQUIRY_TYPE>RV</ENQUIRY_TYPE>
                <REPORT_DATE>26/12/2007</REPORT_DATE>
                <ENQUIRY_NO>17248697</ENQUIRY_NO>
                <PRODUCT_TYPE>PLN</PRODUCT_TYPE>
                <NO_OF_APPLICANTS>1</NO_OF_APPLICANTS>
                <ACCOUNT_TYPE>S</ACCOUNT_TYPE>
                <ENQUIRY_REFERENCE>FOS000279511111UKU</ENQUIRY_REFERENCE>
                <AMOUNT>0.00</AMOUNT>
                <MBR_TYPE>FULL</MBR_TYPE>
                <MBR_STS>ACTIV</MBR_STS>
                <CONSUMER>      
                </CONSUMER>
                <DISCLAIMER>
                    <DI_TEXT></DI_TEXT>
                    <DI_TEXT_AR lang="ar"></DI_TEXT_AR>
                </DISCLAIMER>
            </RSP_REPORT>
        </ITEM>
    </MESSAGE>
</RESPONSE>
    [XmlRoot("Context")]
    public class Context
    {
        public Context() { this.Persons = new Persons(); }

        [XmlArray("Persons")]
        [XmlArrayItem("Person")]
        public Persons Persons { get; set; }
    }

    public class Persons : List<Human> { }

    public class  Human
    {
        public Human() { }
        public Human(string name) { Name = name; }
        public string Name { get; set; }
    }

    class Program
    {
        public static void Main(string[] args)
        {
            Context ctx = new Context();
            ctx.Persons.Add(new Human("john"));
            ctx.Persons.Add(new Human("jane"));

            var writer = new StringWriter();
            new XmlSerializer(typeof(Context)).Serialize(writer, ctx);

            Console.WriteLine(writer.ToString());
        }
    }