XmlIgnore的解释和使用
程序员文章站
2022-07-14 08:52:46
...
XmlIgnore的解释和使用
在网上查看XmlIgnore这个标签的功能,有些解释是:“XmlIgnore是一个自定义属性,用来指明在序列化时是否序列化一个属性”,经过我在本地测试运行得到的结果,我觉得应该为:“XmlIgnore是一个自定义属性,用来指明在序列化时是否忽略序列化一个属性”,详情看代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
/// <summary>
/// [XmlIgnore]标签总结:英文单词Ignore的意思是忽略,顾名思义就是加上了这个标签的字段(属性)就不会被序列化,在代码中表现为attrs.XmlIgnore = true的时候被忽略
/// </summary>
namespace XMLIgnore_Student
{
public class Group
{
public string GroupName;
#region 位置 1
//[XmlIgnore] //位置 1
#endregion
public string Comments;
}
class Program
{
static void Main(string[] args)
{
//注释位置1和2,解注释位置3
//结果如下:
/*
<?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>
<Comments>Microsoft .net 3.5</Comments>
</Group>
*/
//结论:GroupName和Comments字段都被序列化了
//SerializeObject("xml_ignore1.xml");
//注释位置2,解注释位置1和3
//结果如下:
/*
<?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>
*/
//结论:GroupName被序列化了,Comments没有被序列化
//SerializeObject("xml_ignore2.xml");
//注释位置1和3,解注释位置2
//结果如下:
/*
<?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">
<Comments>Microsoft .net 3.5</Comments>
</Group>
*/
//结论:Comments被序列化了,GroupName没有被序列化
SerializeObject("xml_ignore3.xml");
}
public static XmlSerializer CreateOverrider()
{
//位置 2 :通过代码来决定忽略哪个字段不序列化
#region 位置 2
XmlAttributeOverrides overr = new XmlAttributeOverrides();
XmlAttributes attrs = new XmlAttributes();
attrs.XmlIgnore = false;
overr.Add(typeof(Group), "Comments", attrs);
attrs = new XmlAttributes();
attrs.XmlIgnore = true;
overr.Add(typeof(Group), "GroupName", attrs);
XmlSerializer serilizer = new XmlSerializer(typeof(Group), overr);
#endregion
//位置 3 :直接序列化,忽不忽略哪些字段由类中的字段所标记的标签决定
#region 位置 3
//XmlSerializer serilizer = new XmlSerializer(typeof(Group));
#endregion
return serilizer;
}
public static 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();
}
}
}
上一篇: CMD 容器启动命令
下一篇: Element UI 中滚动条隐藏设置
推荐阅读
-
使用Python3编写抓取网页和只抓网页图片的脚本
-
Python中在for循环中嵌套使用if和else语句的技巧
-
Python中for循环和while循环的基本使用方法
-
Java使用kafka发送和生产消息的示例
-
教你用CorelDRAW绘制矩形和方形 矩形工具的使用方法和应用技巧介绍
-
CorelDRAW中手绘工具的使用方法和操作技巧介绍
-
使用HTML5 Canvas为图片填充颜色和纹理的教程
-
如何在CorelDRAW中使用渐变填充对象 渐变填充的操作方法和应用技巧介绍
-
如何使用CorelDRAW为对象填充图案 图案填充的操作方法和应用技巧介绍
-
python 实时得到cpu和内存的使用情况方法