C#之xml序列化

前面其实已经说过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去掉之后,又可以反序列化了。

一直找不到原因,后来,花了好久周,再微软的下面网址:

https://docs.microsoft.com/zh-cn/dotnet/api/system.xml.serialization.xmlserializer.deserialize?view=netframework-4.7.2

 找到一个如何定义的时候,增加namespace

我也尝试了一下

 

发现不再报错了,问题解决

*******************************************20190326****************************

今天想尝试一下,修改对了同一个group进行不同的变量进行赋值,如下图:

 序列化成字符串直接失败了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值