.NET(C#):XmlArrayItem特性和XmlElement特性在序列化数组的差别

原文http://www.cnblogs.com/mgen/archive/2011/12/04/2276238.html

比如这样一个类,我们用XmlArrayItem特性标明数组内出现的元素类型:

publicclassa

{

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

    publicobject[] arr =newobject[] { 12, "hehe", Guid.NewGuid() };

}

 

序列化的XML是:

<axmlns: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特性:

publicclassa

{

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

    publicobject[] arr =newobject[] { 12, "hehe", Guid.NewGuid() };

}

 

序列化的XML是这样:

<axmlns: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元素名称。

时间: 2024-09-20 21:28:28

.NET(C#):XmlArrayItem特性和XmlElement特性在序列化数组的差别的相关文章

.NET(C#):在数组成员上加入XmlElement特性

原文 www.cnblogs.com/mgen/archive/2011/12/04/2276131.html 当对如下类进行XML序列化时: publicclassa {     publicint[] arr =newint[] { 1, 2, 3 }; }   结果会是: <axmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:xsd="http://www.w3.org/2001/XMLS

返璞归真 asp.net mvc (12) - asp.net mvc 4.0 新特性之移动特性

原文:返璞归真 asp.net mvc (12) - asp.net mvc 4.0 新特性之移动特性 [索引页][源码下载] 返璞归真 asp.net mvc (12) - asp.net mvc 4.0 新特性之移动特性 作者:webabcd 介绍asp.net mvc 之 asp.net mvc 4.0 新特性之移动特性 为不同的客户端提供不同的视图 手动重写 UserAgent,从而强制使用对应的视图 示例1.演示如何为不同的客户端提供不同的视图Global.asax.cs /* * 为

MySQL · 特性分析 · 企业版特性一览

背景 MySQL 企业版由 Oracle 公司维护,当然也是收费的.其产品类别也基本和 Oracle 数据库一致,包括标准版.企业版.集群版等.标准版包括基本的特性,价格也会比企业版便宜很多.今天和小编一起来看下 MySQL Enterprise Edition 提供的一些功能,这些功能的源码当然是不开源的,也是企业版的卖点. 企业级备份恢复 备份 备份工具提供 InnoDB 的联机在线备份,同时 MyISAM 引擎的备份会阻塞写入.联机备份是否阻塞应用,还要根据引擎的特性来定.这点上,Perc

C#类特性和属性特性

using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Reflection; namespace ConsoleApplication6 { /// <summary> /// AttributeTargets.Class可以对类应用属性 /// Inherited能否由派生类或重写成员继承 /// AllowMu

[C#]Attribute特性(3)——AttributeUsage特性和特性标识符

相关文章       [C#]Attribute特性       [C#]Attribute特性(2)--方法的特性及特性参数 AttributeUsage特性      除了可以定制自己的特性来注释常用的C#类型外,您可以用AttributeUsage特性来定义您想怎样使用这些特性.AttributeUsage特性采用如下的调用惯例: 1 [AttributeUsage( 2 3 Validon, 4 5 AllowMultiple=allowmultiple, 6 7 Inherited=i

谈PHP 闭包特性在实际应用中的问题

PHP5.3 新版本跟随了很多新特性, 其中比较惹眼的特性之一就是支持了闭包.那么以后,我们也可以和那帮写 Ruby.Javascript 等等高科技语言的家伙们一样,写出非常酷的代码吗?呃,其实大部分情况下是可以的,而有些方面还是令人非常的困扰,下面慢慢道来. PHP5.3 新版本跟随了很多新特性, 其中比较惹眼的特性之一就是支持了闭包.那么以后,我们也可以和那帮写 Ruby.Javascript 等等"高科技语言"的家伙们一样,写出非常酷的代码吗?呃,其实大部分情况下是可以的,而有

Oracle 10G First Release的新特性简介(下)

oracle Oracle 10G First Release的新特性简介(下) By Fenng 2003-07-10 注:近日Oracle已经正式宣布该版本的Oracle命名为10G,其中的G为Grid之意.特此更正. 高可用性的加强 1.缩短应用和数据库升级的宕机时间 通过使用standby数据库.允许在不同版本的standby和产品数据库间切换.现有的联机重定义功能能够支持一步克隆所有相关的数据库对象. 2.回闪(Flashback)任何错误 该版本的Oracle也扩展了Flashbac

C# 特性(Attribute)入门(一)

# 特性(Attribute)入门(一) By sadaf alvi 翻译:cppbug (itwizard@163.com) 绪论 特性(Attributes)是一种崭新的声明性信息.我们不仅可以通过特性来定义设计层面的信息(例如help file, URL for documentation)以及运行时(run-time)信息(例如使XML与class相联系),而且我们还可以利用特性建立自描述(self-describing)组件.在这篇教程中,我们将会看到如何建立和添加特性到各种程序实体以

AutoCad对象特性

8.9.1 对象特性简介 在AutoCAD中,对象特性(Properties)是一个比较广泛的概念,即包括颜色.图层.线型等通用特性,也包括各种几何信息,还包括与具体对象相关的附加信息,如文字的内容.样式等. 在前面各章节中我们已经学习使用各种编辑.修改和查询命令来访问对象的特性,但这些命令一般只涉及对象的一种或几种特性.如果用户想访问特定对象的完整特性,则可通过"Properties(特性)"窗口来实现,该窗口是用以查询.修改对象特性的主要手段. 弹出"Properties