当前位置: 首页> 汽车> 新车 > 江门seo咨询_销售策划_seo岗位工资_南京seo代理

江门seo咨询_销售策划_seo岗位工资_南京seo代理

时间:2025/7/13 3:10:42来源:https://blog.csdn.net/qq_34047402/article/details/147479740 浏览次数: 0次
江门seo咨询_销售策划_seo岗位工资_南京seo代理

        本文介绍XML序列化和反序列化操作

        本例子中被序列化的类(Devices)中有一个List,其元素类型为:DigitalInputInfo. 序列化以及反序列化都很简单:

        序列化:即把类的对象输出到文件中。

           StreamWriter streamWriter = new StreamWriter(filePath);
            XmlSerializerNamespaces xmlSerializerNamespaces = new XmlSerializerNamespaces();
            xmlSerializerNamespaces.Add("", "");
            XmlSerializer xmlSerializer = new XmlSerializer(sourceObj.GetType());
            xmlSerializer.Serialize(streamWriter, sourceObj, xmlSerializerNamespaces);
            streamWriter.Close();
            return true;

        反序列化:从文件中加载生成类的对象。

         StreamReader streamReader = new StreamReader(filePath);
        XmlSerializer xmlSerializer = new XmlSerializer(type ?? typeof(T));
        obj = xmlSerializer.Deserialize(streamReader);
        streamReader.Close();     

       具体效果以及代码如下:   

一、效果如下

        生成的序列化文件打开后如下:

二、具体代码:

public static bool SaveToXml_FileName<T>(string filePath, T sourceObj)
{if (!string.IsNullOrEmpty(filePath) && sourceObj != null){try{StreamWriter streamWriter = new StreamWriter(filePath);XmlSerializerNamespaces xmlSerializerNamespaces = new XmlSerializerNamespaces();xmlSerializerNamespaces.Add("", "");XmlSerializer xmlSerializer = new XmlSerializer(sourceObj.GetType());xmlSerializer.Serialize(streamWriter, sourceObj, xmlSerializerNamespaces);streamWriter.Close();return true;}catch (Exception ex){Log.Error(ex);}}return false;
}
public static T LoadFromXml_FileName<T>(string filePath, Type type = null)
{object obj = null;try{StreamReader streamReader = new StreamReader(filePath);XmlSerializer xmlSerializer = new XmlSerializer(type ?? typeof(T));obj = xmlSerializer.Deserialize(streamReader);streamReader.Close();}catch (Exception ex){Log.Error(ex);}return (obj == null) ? default(T) : ((T)obj);
}
  public class DigitalInputInfo{private bool isOn = false;public int Id { get; set; } = 0;public string Name { get; set; } = string.Empty;public int IndexByte { get; set; } = 0;public int IndexBit { get; set; } = 0;
}
public class Devices 
{ public List<DigitalInputInfo> digitalInputInfos = new List<DigitalInputInfo>();
}main()
{
Devices    instance = new Devices();
DigitalInputInfo info1 = new DigitalInputInfo()
{Id = 1,IndexByte = 1,IndexBit = 1
};
DigitalInputInfo info2 = new DigitalInputInfo()
{Id = 2,IndexByte = 3,IndexBit = 4
};
instance.digitalInputInfos.Add(info1);
instance.digitalInputInfos.Add(info2);
instance.Save();
}

关键字:江门seo咨询_销售策划_seo岗位工资_南京seo代理

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: