XML串行化,低层类

Code
#region 注释
/*
作者:李杰
邮箱: zhuyuelee@163.com
主页:
日期:2008年10月28日 11:05:08
******************************************************************************************
功能描述:XML序列化底层类

*/
#endregion

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml.Serialization;

namespace Lee.Xml.DBUtility
{
/// <summary>
/// SerializationHelper 的摘要说明。
/// </summary>
public class SerializationHelper
{
/// <summary>
/// 返回操作信息
/// </summary>
public static string Message = "操作成功";

private SerializationHelper()
{
}

#region 反序列化
/// <summary>
/// 反序列化
/// </summary>
/// <param name="type">对象类型</param>
/// <param name="filename">文件路径</param>
/// <param name="root">根元素</param>
/// <returns></returns>
public static object Load(Type type, string filename, string root)
{
FileStream fs
= null;
object obj = null;
try
{
// open the stream
fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

XmlSerializer serializer;
if (root != null)
{
XmlRootAttribute xmlRoot
= new XmlRootAttribute();
xmlRoot.ElementName
= root;

serializer
= new XmlSerializer(type, xmlRoot);
}
else
{
serializer
= new XmlSerializer(type);
}
obj
= serializer.Deserialize(fs);
}
catch (Exception e)
{
Message
= e.Message;
}
finally
{
if (fs != null)
fs.Close();
}
return obj;
}

/// <summary>
/// 反序列化
/// </summary>
/// <param name="type">对象类型</param>
/// <param name="filename">文件路径</param>
/// <returns></returns>
public static object Load(Type type, string filename)
{
return Load(type, filename, null);
}
#endregion

#region 序列化
/// <summary>
/// 序列化
/// </summary>
/// <param name="obj">对象</param>
/// <param name="filename">文件路径</param>
/// <param name="Root">根元素</param>
/// <returns></returns>
public static bool Save(object obj, string filename, string root)
{
bool reResult = true;

FileStream fs
= null;
// serialize it
try
{
fs
= new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
XmlSerializer serializer;

if (root != null)
{
XmlRootAttribute xmlRoot
= new XmlRootAttribute();
xmlRoot.ElementName
= root;
serializer
= new XmlSerializer(obj.GetType(), xmlRoot);
}
else
{
serializer
= new XmlSerializer(obj.GetType());
}
serializer.Serialize(fs, obj);
}
catch (Exception ex)
{
Message
= ex.Message;
}
finally
{
if (fs != null)
fs.Close();
}
return reResult;
}

/// <summary>
/// 序列化
/// </summary>
/// <param name="obj">对象</param>
/// <param name="filename">文件路径</param>
public static bool Save(object obj, string filename)
{
return Save(obj, filename, null);
}
#endregion
}
}

转载于:https://www.cnblogs.com/zhuyue/archive/2008/10/28/1321343.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值