前面其实已经说过xml的序列化与反序列化,这次主要是介绍两个属性
第一个是
[XmlRootAttribute("file")]
可以修改根节点的名称为file
第二个:
[XmlElement("Item")]
可以修改后续的类的节点为Item
我们举个例子:定义如下:
#region RecordFileBlock
//录像文件块的xml格式定义
[Serializable]
[XmlRootAttribute("file")]
public class RecordFileBlockt
{
public string fileSize
{
get;
set;
}
public string fileStartTime
{
get;
set;
}
public string fileEndTime
{
get;
set;
}
[XmlElement("item")]
public List<RecordFileBlockt_Item> item { get; set; }
}
public class RecordFileBlockt_Item
{
public string fileId { get; set; }
public string filePath { get; set; }
public string fileHead { get; set; }
public string fileStartTime { get; set; }
public string fileEndTime { get; set; }
}
#endregion
输出的字符串为:
我们把第二个:去掉
[XmlElement("Item")]
看下面的结果:
多出了一个节点,如果需要减少一个节点,需要使用上面的定义
*************************************2019-03-23************************
今天遇到一个xml反序列化的问题,就是当又namespace的时候,总是提示反序列化失败,如下图:
xml如下图:
当把后面的xmlns去掉之后,又可以反序列化了。
一直找不到原因,后来,花了好久周,再微软的下面网址:
找到一个如何定义的时候,增加namespace
我也尝试了一下
发现不再报错了,问题解决
*******************************************20190326****************************
今天想尝试一下,修改对了同一个group进行不同的变量进行赋值,如下图:
序列化成字符串直接失败了