SerializationUtility
public static T LoadFromXml<T>(string fileName)
{
FileStream fs = null;
try
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
return (T)serializer.Deserialize(fs);
}
finally
{
if (fs != null)
{
fs.Close();
}
}
} public static void SaveToXml<T>(string fileName, T data)
{
FileStream fs = null;
try
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
serializer.Serialize(fs, data);
}
finally
{
if (fs != null)
{
fs.Close();
}
}
} public static string XmlSerialize<T>(T serialObject)
{
StringBuilder sb = new StringBuilder();
XmlSerializer ser = new XmlSerializer(typeof(T));
using (TextWriter writer = new StringWriter(sb))
{
ser.Serialize(writer, serialObject);
return writer.ToString();
}
} public static string XmlSerialize(object serialObject)
{
StringBuilder sb = new StringBuilder();
XmlSerializer ser = new XmlSerializer(serialObject.GetType());
using (TextWriter writer = new StringWriter(sb))
{
ser.Serialize(writer, serialObject);
return writer.ToString();
}
} public static T XmlDeserialize<T>(string str)
{
XmlSerializer mySerializer = new XmlSerializer(typeof(T));
using (TextReader reader = new StringReader(str))
{
return (T)mySerializer.Deserialize(reader);
}
} public static object XmlDeserialize(string str, Type type)
{
XmlSerializer mySerializer = new XmlSerializer(type);
using (TextReader reader = new StringReader(str))
{
return mySerializer.Deserialize(reader);
}
} public static string BinarySerialize<T>(T serialObject, Encoding encoding)
{
string result = String.Empty; using (MemoryStream ms = new MemoryStream())
{
try
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(ms, serialObject);
ms.Position = ;
result = encoding.GetString(ms.ToArray());
}
catch (Exception)
{
throw;
}
}
return result;
} public static string BinarySerialize<T>(T serialObject)
{
return BinarySerialize<T>(serialObject, Encoding.Default);
} public static string BinarySerialize(object serialObject, Encoding encoding)
{
string result = String.Empty; using (MemoryStream ms = new MemoryStream())
{
try
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(ms, serialObject);
ms.Position = ;
result = encoding.GetString(ms.ToArray());
}
catch (Exception)
{
throw;
}
}
return result;
} public static string BinarySerialize(object serialObject)
{
return BinarySerialize(serialObject, Encoding.Default);
} public static T BinaryDeserialize<T>(string str, Encoding encoding)
{
T result = default(T);
using (MemoryStream ms = new MemoryStream())
{
try
{
BinaryFormatter formatter = new BinaryFormatter();
byte[] bytes = encoding.GetBytes(str);
ms.Write(bytes, , bytes.Length);
ms.Position = ;
result = (T)formatter.Deserialize(ms); }
catch (Exception)
{
throw;
}
}
return result;
} public static T BinaryDeserialize<T>(string str)
{
return BinaryDeserialize<T>(str, Encoding.Default);
} public static object BinaryDeserialize(string str)
{
using (MemoryStream ms = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
byte[] bytes = Encoding.Default.GetBytes(str);
ms.Write(bytes, , bytes.Length);
ms.Position = ;
return formatter.Deserialize(ms);
}
}
}
public static string SerializeToXml(object value)
{
if (value == null)
return "";
string result = string.Empty;
if (value is string)
{
return value.ToString();
} try
{
StringBuilder sb = new StringBuilder();
XmlSerializer ser = new XmlSerializer(value.GetType());
using (TextWriter writer = new StringWriter(sb))
{
ser.Serialize(writer, value);
result = writer.ToString();
}
}
catch
{
} return result;
}
SerializationUtility的更多相关文章
- Thrift搭建分布式微服务(四)
第一篇 <连接配置> 第二篇 <连接池> 第三篇 <标准通信> 第四篇 快速暴露接口 之前的文章,我们介绍了如何使用连接池管理Thrift节点,以及使用Thri ...
- Enterprise Library 5.0 参考源码索引
http://www.projky.com/entlib/5.0/Microsoft/Practices/EnterpriseLibrary/Caching/BackgroundScheduler.c ...
- Enterprise Library 4.1 参考源码索引
http://www.projky.com/entlib/4.1/Microsoft/Practices/EnterpriseLibrary/AppSettings/Configuration/Des ...
- Enterprise Library 3.1 参考源码索引
http://www.projky.com/entlib/3.1/Microsoft/Practices/EnterpriseLibrary/AppSettings/Configuration/Des ...
- Enterprise Library 2.0 参考源码索引
http://www.projky.com/entlib/2.0/Microsoft/Practices/EnterpriseLibrary/Caching/BackgroundScheduler.c ...
- Enterprise Library 1.1 参考源码索引
http://www.projky.com/entlib/1.1/Microsoft/Practices/EnterpriseLibrary/Caching/BackgroundScheduler.c ...
随机推荐
- 通过生产者消费者模式例子讲解Java基类方法wait、notify、notifyAll
wait(),notify()和notifyAll()都是Java基类java.lang.Object的方法. 通俗解释wait():在当前线程等待其它线程唤醒.notify(): 唤醒一个线程正在等 ...
- 【转】webstorm 注册码 / phpstorm 注册码
WebStorm注册码 User Name: EMBRACE License Key: ===== LICENSE BEGIN ===== 24718-12042010 00001h6wzKLpfo3 ...
- PHOTOSHOP CC 2015插件安装方法
收到很多评论说不能安装.抱歉,这里解释一下,不是所有插件都能用这个方法,安装不了的只能等插件更新了,这里只是给大家一个尝试的方法,有一些插件可以用这个方法安装. 试试嘛,如果懒得试,可以忽略这篇文章. ...
- 将自己写的windows服务加入到windows集群中
最近发现windows集群能进行很多自定义,比如在集群中加入自己编写的服务. 能自定义的可不少,截个图: 本次演示中,只想用“通用服务”这个类型. 先列下步骤 编写一个记录时间的Windows服务,这 ...
- 删除windows系统中以前的设备(比如以前的网卡)或驱动的方法
1.在“开始”菜单单击“运行”,然后在“运行”对话框中输入“CMD”命令打开命令提示符窗口:2.在提示符窗口中输入“Set devmgr_show_nonpresent_devices=1”并回车:3 ...
- Scala 深入浅出实战经典 第75讲:模式匹配下的For循环
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...
- Scala 深入浅出实战经典 第64讲:Scala中隐式对象代码实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- A cycle was detected in the build path of project
解决Eclipse中Java工程间循环引用而报错的问题 如果我们的项目包含多个工程(project),而它们之间又是循环引用的关系,那么Eclipse在编译时会抛出如下一个错误信息: “A cycle ...
- 找回Win8.1(windows server 2012 R2)的双拼
一.微软拼音的选项,只能在metro界面修改: 鼠标移动到屏幕右下,出现metro的菜单,选"设置"然后选最下面的"更改电脑设置" 时间和设置->区域和语 ...
- Spring4 MVC Hibernate4集成 Annotation
Spring4 MVC Hibernate4集成 Annotation 一.本文所用环境 二.工程目录 三.Maven添加依赖 四.新建数据库表 五.配置文件 六.Model层 七.DAO层 八.Se ...