簡體   English   中英

反序列化XML文檔1,2時出錯

[英]Error Deserializing XML Document 1,2

我在反序列化XML文檔時遇到麻煩。

<rules version="61">
    <emie>
        <domain exclude="false">facebook.com</domain>
        <domain exclude="false">google.com</domain>
        <domain exclude="false">bbc.co.uk</domain>
    </emie>
    <docMode>
        <domain docMode="7">outlook.com</domain>
        <domain docMode="7">yahoo.com</domain>
    </docMode>
</rules>

我已經將粘貼XML作為類復制並粘貼到了Visual Studio中,並創建了以下類

/// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class rules
    {

        private rulesDomain[] emieField;

        private rulesDomain1[] docModeField;

        private byte versionField;

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("domain", IsNullable = false)]
        public rulesDomain[] emie
        {
            get
            {
                return this.emieField;
            }
            set
            {
                this.emieField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("domain", IsNullable = false)]
        public rulesDomain1[] docMode
        {
            get
            {
                return this.docModeField;
            }
            set
            {
                this.docModeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte version
        {
            get
            {
                return this.versionField;
            }
            set
            {
                this.versionField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class rulesDomain
    {

        private bool excludeField;

        private string valueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool exclude
        {
            get
            {
                return this.excludeField;
            }
            set
            {
                this.excludeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public string Value
        {
            get
            {
                return this.valueField;
            }
            set
            {
                this.valueField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class rulesDomain1
    {

        private string docModeField;

        private string valueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string docMode
        {
            get
            {
                return this.docModeField;
            }
            set
            {
                this.docModeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlTextAttribute()]
        public string Value
        {
            get
            {
                return this.valueField;
            }
            set
            {
                this.valueField = value;
            }
        }
    }

然后,我運行以下代碼進行反序列化

XmlSerializer mySerializer = new XmlSerializer(typeof(XmlSerializer));
            Classes.rules r;

            using (StreamReader reader = new StreamReader(@"file.xml"))
            {
                r = (Classes.rules)mySerializer.Deserialize(reader);
            }

r = ... {上沒有預期的錯誤。“}

我可以肯定的是錯誤位於類和頂部的聲明中,但是我無法更改它,因此它可以工作,有人可以幫忙嗎?

更改

XmlSerializer mySerializer = new XmlSerializer(typeof(XmlSerializer));

XmlSerializer mySerializer = new XmlSerializer(typeof(Classes.rules));

它的參數是此XmlSerializer可以序列化的對象的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM