/// <summary>
/// 保存XML文件
/// </summary>
/// <param name="strPathXML">xml文件路径</param>
/// <param name="sourceObj">数据对象</param>
/// <param name="type">数据类型</param>
/// <returns></returns>
public static bool SaveToXML(string strPathXML, object sourceObj, Type type)
{
if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(strPathXML)))//判断是否存在,不存在就创建
{
try
{
System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(strPathXML));
}
catch
{
return false;
}
}
try
{
XmlSerializer serializer = new XmlSerializer(type);
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
using (FileStream stream = new FileStream(strPathXML, FileMode.Create))
{
serializer.Serialize(stream, sourceObj, ns);//序列化
stream.Close();
return true;
}
}
catch (Exception ex)
{
return false;
}
}
/// <summary>
/// 加载XML文件
/// </summary>
/// <param name="strPathXML">xml文件路径</param>
/// <param name="type">数据类型</param>
/// <param name="data">out 返回数据</param>
/// <returns></returns>
public static bool LoadFromXML(string strPathXML, Type type, out object data)
{
if (!System.IO.File.Exists(strPathXML))
{
//System.Windows.Forms.MessageBox.Show(strPathXML + " 文件不存在!!");
//data = new object();
data = null;
return false;
}
data = null;
XmlSerializer serializer = new XmlSerializer(type);
using (FileStream stream = new FileStream(strPathXML, FileMode.Open, FileAccess.Read))
{
try
{
data = serializer.Deserialize(stream);//反序列化,返回object外面要强制转换
stream.Close();
}
catch
{
data = new object();
return false;
}
}
return true;
}