//XML读写类
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
namespace MvvmScaffoldFrame48.DLL.ConfigTools
{
public static class XMLReadWrite
{
///
/// 序列化对象到XML文件
///
///
///
///
///
public static void SerializeToXml(T data, string filePath)
{
try
{
var serializer = new XmlSerializer(typeof(T));
using (var writer = new StreamWriter(filePath))
{
serializer.Serialize(writer, data);
}
}
catch (Exception ex)
{
throw new InvalidOperationException("XML serialization failed", ex);
}
}
///
/// 序列化对象为XML字符串
///
/// 对象类型
/// 要序列化的对象
/// XML字符串
///
public static string SerializeToString(T data)
{
try
{
var serializer = new XmlSerializer(typeof(T));
using (var writer = new StringWriter())
{
serializer.Serialize(writer, data);
return writer.ToString();
}
}
catch (Exception ex)
{
throw new InvalidOperationException("XML serialization to string failed", ex);
}
}
///
/// 从XML文件反序列化对象
///
///
///
///
///
public static T DeserializeFromXml(string filePath)
{
try
{
var serializer = new XmlSerializer(typeof(T));
using (var reader = new StreamReader(filePath))
{
return (T)serializer.Deserialize(reader);
}
}
catch (Exception ex)
{
throw new InvalidOperationException("XML deserialization failed", ex);
}
}
///
/// 从XML字符串反序列化对象
///
/// 对象类型
/// XML字符串
/// 反序列化的对象
///
public static T DeserializeFromString(string xmlString)
{
try
{
var serializer = new XmlSerializer(typeof(T));
using (var reader = new StringReader(xmlString))
{
return (T)serializer.Deserialize(reader);
}
}
catch (Exception ex)
{
throw new InvalidOperationException("XML deserialization from string failed", ex);
}
}
}
}