/// <summary>
/// XML读取保存
/// </summary>
public static class XmlHelper
{
#region 加载配置文件,并返回结果
/// <summary>
/// 加载配置文件,并返回结果
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="fileName"></param>
/// <param name="IfFileNotExist"></param>
/// <returns></returns>
public static T LoadFromXML<T>(string fileName, Action IfFileNotExist = null)
{
//定义一个数据类型对象
T result = default(T);
try
{
//检查配置文件是否存在
if (File.Exists(fileName))
{
FileStream fileStream = File.OpenRead(fileName);
result = LoadFromXML<T>(fileStream);
fileStream.Close();
fileStream.Dispose();
}
else
{
}
}
catch
{
}
return result;
}
#endregion
#region 保存数据---未启用
public static bool SaveAsXML(string fileName, object o)
{
try
{
using (FileStream fileStream = File.Create(fileName))
{
XmlSerializer xmlSerializer = new XmlSerializer(o.GetType());
XmlSerializerNamespaces xmlSerializerNamespaces = new XmlSerializerNamespaces();
xmlSerializerNamespaces.Add(string.Empty, string.Empty);
xmlSerializer.Serialize(fileStream, o, xmlSerializerNamespaces);
fileStream.Close();
}
return true;
}
catch (Exception ex)
{
throw new Exception("保存XML异常: " + ex.Message + " 堆栈信息: " + ex.StackTrace);
}
}
#endregion
#region 读取文件流,反序列化成指定数据类型并返回对象
/// <summary>
/// 读取文件流,反序列化成指定数据类型并返回对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="stream"></param>
/// <returns></returns>
private static T LoadFromXML<T>(Stream stream)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
return (T)xmlSerializer.Deserialize(stream);
}
#endregion
}