C# XmlSerializer
来源:互联网 发布:c语言中的error 编辑:程序博客网 时间:2024/05/22 06:42
C# 通过 XmlSerializer 将类进行序列化和反序列化 保存XML
/// <summary>
/// 获取List<T>/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="path"></param>
/// <returns></returns>
public static List<T> GetControlList<T>(string path)
{
try
{
List<T> list;
if (!File.Exists(path))
{
list = new List<T>();
SaveTToXml<T>(list, path);
return list;
}
if (File.GetAttributes(path).ToString().Contains(FileAttributes.ReadOnly.ToString()))
{
File.SetAttributes(path, FileAttributes.Normal);
}
StreamReader streamReader = new StreamReader(path);
XmlSerializer xmlserializer = new XmlSerializer(typeof(List<T>));
object obj = xmlserializer.Deserialize(streamReader);
streamReader.Close();
list = (List<T>)obj;
return list;
}
catch (Exception ex)
{
return null;
}
}
/// <summary>
/// 保存List<T>
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <param name="path"></param>
public static void SaveTToXml<T>(List<T> list, string path)
{
try
{
MemoryStream memoryStream = new MemoryStream();
XmlSerializer xml = new XmlSerializer(typeof(List<T>));
xml.Serialize(memoryStream, list);
memoryStream.Position = 0;
XmlDocument ScreenWall = new XmlDocument();
ScreenWall.Load(memoryStream);
memoryStream.Close();
ScreenWall.Save(path);
}
catch (Exception ex)
{
}
}
/// <summary>
/// 添加 T 到XML中
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <param name="path"></param>
public static void AddTToXml<T>(T obj, string path)
{
try
{
List<T> screenWalllist = GetControlList<T>(path);
if (screenWalllist != null)
{
screenWalllist.Add(obj);
}
else
{
screenWalllist = new List<T>();
screenWalllist.Add(obj);
}
SaveTToXml<T>(screenWalllist, path);
}
catch (Exception ex)
{
}
}
阅读全文
0 0
- C# XmlSerializer
- c# xmlserializer 序列化
- c# xmlSerializer的使用示例
- [C#基础]c#中的XmlSerializer类
- 浅析C# XmlSerializer概念及作用
- C#使用XmlSerializer序列化对象
- C# XML序列化实例学习:XmlSerializer
- C# 派生类的XmlSerializer序列化XML
- C# XML反序列化与序列化举例:XmlSerializer
- C# 实体类序列化与反序列化一 (XmlSerializer)
- XmlSerializer学习
- XmlSerializer对象
- XmlSerializer 常见问题
- XmlSerializer学习
- XmlSerializer 类
- XmlSerializer 类
- C# 串行化与反串行化--使用XmlSerializer进行串行化
- C# 串行化与反串行化--使用XmlSerializer进行串行化(另外一种方法)
- 多线程和单线程执行效率比较
- 第七题 画梯形
- 强烈推荐大家看这篇文章:iOS开发常用三方库、插件、知名博客等等(特别有用)
- MFC程序发布
- 作为一名蒻幾对2017noip提高的反思与总结
- C# XmlSerializer
- python网络编程之udp
- VS生成事件 Pre/Post-Build Event
- XML解析
- Mac下VSCode导入c语言头文件警告
- RTC驱动系统分析
- 原生js实现下拉级联操作+通过disabled对下拉框不使用
- mapReduce使用分布式缓存机制
- Gamma校正原理及实现