簡體   English   中英

XML序列化和反序列化嵌套元素C#

[英]XML Serialization and Deserialization nested elements c#

請考慮以下xml。 我想反序列化。 但是,它不會反序列化Rules元素。 一些快速的提示,不勝感激。

<ImportDefinition>
    <Import>
    <Customer>
        <Name>Customer1</Name>
        <Path>\\192.168.1.1\40014\</Path>
        <Rules>
           <Rule Type="OrgNr-VATNr">INDEX_6|BDPOS_7</Rule>  
           <Rule Type="DueDate">INDEX_11|BDPOS_7|25</Rule>
        </Rules>
    </Customer>
  </Import>
</ImportDefinition>

    [XmlRoot("ImportDefinition")]
    public class ImportDefinition
    {
        public ImportDefinition() { }

        [XmlArray("Import"), XmlArrayItem("Customer", typeof(Customer))]
        public List<Customer> Customers
        {
            get { return (_customers); }
            set { _customers = value; }
        }
    }


[XmlType(TypeName = "Customer"), Serializable]
    public class Customer
    {
        public Customer() { }

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

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

        private List<Rule> _rules = new List<Rule>();
        [XmlArray("Rules")]
        public List<Rule> Rules
        {
            get { return (_rules); }
            set { _rules = value; }
   }
}

[XmlType(TypeName = "Rule"), Serializable]
public class Rule
{
    public Rule() { }

    [XmlAttribute("Type")]
    public string Type { get; set; }

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

}

在我的項目中,我有一個類似的情況,與您的代碼的唯一區別是我設置了XmlArrayItem屬性:

    [XmlArrayItem("Rules")]
    public List<Rule> Rules
    {
        get { return (_rules); }
        set { _rules = value; }
    }

暫無
暫無

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

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