XmlIgnore的使用

public class Group
{

    public string GroupName;
    [XmlIgnore]
    public string Comments;
}

在序列化时,其结果如下所示

<?xml version="1.0" encoding="utf-8"?>
<Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <GroupName>.Net</GroupName>
</Group>

我们可以看到,因为设置了XmlIgnore,所以Comments没有被序列化。对于已经设置了XmlIgnore的属性,也可以通过XmlAttributeOverrides 来重新第一序列化时是否需要序列化。

public XmlSerializer CreateOverrider()
{
    XmlAttributeOverrides overr = new XmlAttributeOverrides();
    XmlAttributes attrs = new XmlAttributes();

    attrs.XmlIgnore = true;
    overr.Add(typeof(Group), "Comments", attrs);

    attrs = new XmlAttributes();
    attrs.XmlIgnore = false;
    overr.Add(typeof(Group), "GroupName", attrs);

    XmlSerializer serilizer = new XmlSerializer(typeof(Group), overr);
    return serilizer;
}
public void SerializeObject(string filename)
{
    XmlSerializer serializer = CreateOverrider();
    Group group = new Group();
    group.GroupName = ".Net";
    group.Comments = "Microsoft .net 3.5";

    StreamWriter writer = new StreamWriter(filename);
    serializer.Serialize(writer, group);
    writer.Close();
}

这段代码,其结果与上面的相反,序列化了Comments,而不包含GroupName.

时间: 2024-11-05 11:56:34

XmlIgnore的使用的相关文章

C#对象序列化与反序列化

1.对象序列化的介绍 (1).NET支持对象序列化的几种方式 二进制序列化:对象序列化之后是二进制形式的,通过BinaryFormatter类来实现的,这个类位于System.Runtime.Serialization.Formatters.Binary命名空间下. SOAP序列化:对象序列化之后的结果符合SOAP协议,也就是可以通过SOAP 协议传输,通过System.Runtime.Serialization.Formatters.Soap命名空间下的SoapFormatter类来实现的.

Asp.net管理信息系统中数据统计功能的实现

数据统计是每个系统中必备的功能,在给领导汇报统计数据,工作中需要的进展数据时非常有用. 在我看来,一个统计的模块应该实现以下功能: 能够将常用的查询的统计结果显示出来: 显示的结果可以是表格形式,也可以是图形形式,如果是图形的话能够以多种形式显示(柱状图.折线图.饼图.雷达图.堆叠柱状图等): 统计查询的结果,点击数字或者百分比能够显示详细的数据: 能够自由组合查询条件.筛选条件.分组条件.排序等: 统计结果最好有个实时预览: 查询统计能够保存,以便下次能直接调用并显示统计查询的结果: 对于保存

在.net中序列化读写xml方法的总结

在.net中序列化读写xml方法的总结 阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数组的做为数据成员的序列化 类型继承与反序列化 反序列化的实战演练 反序列化的使用总结 排除不需要序列化的成员 强制指定成员的序列化顺序 自定义序列化行为 序列化去掉XML命名空间及声明头 XML的使用建议 XML是一种很常见的数据保存方式,我经常用它来保存一些

公众号微信支付

1.概要 公众号是以微信用户的一个联系人形式存在的,支付是微信服务号的核心一环. 本篇主要介绍微信支付这一功能,避免大家再跳微信支付的坑. 1.1 关于Magicodes.WeChat.SDK MAGICODES.WECHAT.SDK为心莱团队封装的轻量级微信SDK,现已全部开源,开源库地址为:https://github.com/xin-lai/Magicodes.WeChat.SDK 更多介绍,请关注后续博客. 2.微信公众号支付 用户已有商城网址,用户通过微信消息.微信扫描二维码.微信自定

net中序列化读写xml

参考http://www.cnblogs.com/fish-li/archive/2013/05/05/3061816.html 我们可以直接使用XmlTextReader.XmlDocument.XPath来取数XML中的数据, 也可以使用LINQ TO XML或者反序列化的方法从XML中读写数据,我各人比较喜欢序列化.反序列化方法. 1.默认情况下,不添加任何属性标签的对象属性都序列化为一个节点.如下一个Student对象序列化结果如下: public class Student { pub

Tests

1. DateTime.Parse(myString); 这段代码有什么问题? A:区域信息即CultureInfo没有指定.如果不指定的话,它将采用默认的机器级的设置(见:控制面板->区域和语言选项)并使用这个设置来决定这个字符串即myString怎样被解释.所以如果你传入“5/2/2005”且你的区域设置为En-US,则它会被解释为May 2nd 2005,但是如果你的区域设置为Hindi-India,则它会被解释为5th Feb 2005! 参考下面的代码示例: 1 string sDat

C#中XmlSerializer实现序列化浅析

C# XmlSerializer类是实现序列化的一个类,那么关于C# XmlSerializer的学习我们要掌握怎么样的操作方法呢?那么这里向你详细介绍具体的操作细节情况. C# XmlSerializer是什么呢?它是使用二进制格式化程序进行序列化的一个类,那么具体的通过C# XmlSerializer如何实现序列化操作呢?在序列化操作的过程中需要注意些什么呢? C# XmlSerializer的出处: using System.Xml.Serialization; C# XmlSeriali

xml序列化与反序列化

XmlConfig.cs namespace Model { [ Serializable] public class XmlConfig { [ XmlElement] public List <Class1> Class1; [ XmlElement] public List <Class2> Class2; [ XmlIgnore] private static XmlConfig list; public static void SetModelList( XmlConfi

WebServices中Xml的序列化

一.定义序列化实体类 [System.Xml.Serialization.XmlRoot("Custome_Xml_Root_Name")] //自定义生成的Xml根目录名称 public class Customer { [System.Xml.Serialization.XmlAttribute("Customer_Xml_Root_Atrribute_Name")] //自定义生产的Xml根目录属性名称 public int ID { get; set; }