.NET(C#):XmlArrayItem特性和XmlElement特性在序列化數組的差別

來源:互聯網
上載者:User

比如這樣一個類,我們用XmlArrayItem特性標明數組內出現的元素類型:

public class a

{

    [XmlArrayItem(Type = typeof(int)), XmlArrayItem(Type = typeof(Guid)), XmlArrayItem(Type = typeof(string))]

    public object[] arr = new object[] { 12, "hehe", Guid.NewGuid() };

}

 

序列化的XML是:

<a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <arr>

        <int>12</int>

        <string>hehe</string>

        <guid>291b7cba-fc32-4019-bb22-d5d61643b6a7</guid>

    </arr>

</a>

欄位arr的名稱是以XML元素寫入的。

 

但如果把XmlArrayItem都改成XmlElement特性:

public class a

{

    [XmlElement(Type = typeof(int)), XmlElement(Type = typeof(Guid)), XmlElement(Type = typeof(string))]

    public object[] arr = new object[] { 12, "hehe", Guid.NewGuid() };

}

 

序列化的XML是這樣:

<a xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <int>12</int>

    <string>hehe</string>

    <guid>5e7da5a0-d513-47b7-ae8f-80b404a9b0d4</guid>

</a>

 

並沒有arr欄位的名稱!

注意你可以用XmlArrayItem或者XmlElement特性的ElementName來控制對應類型的XML元素名稱。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.