XmlSerializer序列化

学习笔记,记一下,有再加上:

要序列化的类要加 Serialiazable 标记,如果要更改类在xml中的显示名称、命名空间等属性,可以XmlType 标记。

 

对于下面这种属性,可以把 Service 类的 name 属性加上 XmlAttribute 标记,那么此时 name 属性的值就会作为 Service 节点的 name 属性值。

<Service name="map">


对于有前缀的节点或属性。如下面这种。实现方法是在 XmlSerializer.Serialize(stream<或其它>, object, XmlSerializeNamespaces)方法里的 XmlSerializeNamespaces 来设置。把简称和命名空间加进 XmlSerializeNamespaces ,同时把节点或属性的命名空间设置为加入 XmlSerializeNamespaces 里的命名空间。另外 XmlElement 或 XmlAttribute 的Form属性设置为Qualified,就会显示前缀了。

<ows:Service xlink:name="http://babala.com/">

 

上面说道的 Qualified 就是System.Xml.Schema.XmlSchemaForm的一个枚举值,该属性表示是否把该要素或属性的名称显示为 限定的名称,也就是带不带名称空间限定的名称的意思。


对于下面这种情况,实现列表。可以在 Service 类中定义一个列表 List<string> Keys,然后添加 XmlElement 标记,并设置 ElementName 属性为Key,这样就会在 Service 节点的加上List 中的节点作为直接子节点。

<Service>
    <Key>Get</Key>
    <Key>Post</Key>
</Service>

 

posted @ 2013-09-26 21:28  toffrey  阅读(280)  评论(0)    收藏  举报