XML文件序列化和反序列化操作

/// <summary>
/// 序列化、反序列化 操作类
/// </summary>
public class SerializationHelper
{
public SerializationHelper() { }

/// <summary>
/// 反序列化
/// </summary>
/// <param name="type">对象类型</param>
/// <param name="filename">文件路径</param>
/// <returns></returns>
public static object Load(Type type, string filename)
{
FileStream fs = null;
try
{
// open the stream...
fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
XmlSerializer serializer = new XmlSerializer(type);
return serializer.Deserialize(fs);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (fs != null)
fs.Close();
}
}


/// <summary>
/// 序列化
/// </summary>
/// <param name="obj">对象</param>
/// <param name="filename">文件路径</param>
public static void Save(object obj, string filename)
{
FileStream fs = null;
// serialize it...
try
{
fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
XmlSerializer serializer = new XmlSerializer(obj.GetType());
serializer.Serialize(fs, obj);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (fs != null)
fs.Close();
}

}

}

 

用法

public Model.XXX load(string Path)
{
return (Model.XXX)SerializationHelper.Load(typeof(Model.XXX), Path);
}

public Model.XXX saveConifg(Model.XXX model, string Path)
{
lock (lockHelper)
{
SerializationHelper.Save(model, Path);
}
return model;
}

posted @ 2016-12-09 10:58  花影疏帘  阅读(181)  评论(0)    收藏  举报