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 ...
随机推荐
- PoolMon 使用
PoolMon 显示 PoolMon 在命令窗口中显示有关池内存分配的数据列.使用箭头键.PAGE UP 和 PAGE DOWN 键在数据间滚动. 注意 若要查看全部 PoolMon 显示,则 ...
- 如何在maven项目的pom.xml文件中添加jar包
在使用maven进行项目开发时,我们需要在pom.xml文件中添加自己所需要的jar包.这就要求我们获取jar包的groupId和artifactId. 我们可以在一些maven仓库上搜索我们所需要的 ...
- 分布式代码管理 tortoisehg mercurial
下载客户端: https://bitbucket.org/tortoisehg/files/downloads mercurial客户端下载:http://mercurial.s ...
- Java Native Interface Specification—Contents
http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html 1. Introduction Java Nati ...
- 【网络编程】——windows socket 编程
测试demo #include <winsock2.h> #include <stdio.h> #include <string.h> #include <s ...
- PL-SQL 存储函数和存储过程
PL-SQL 存储函数和存储过程 ORACLE 提供能够把PL/SQL 程序存储在数据库中,并能够在不论什么地方来执行它.这样就叫存储过程或函数. 过程和函数统称为PL/SQL子程序.他们是被命 ...
- ch2 MySQL 架构组成
第 2 章 MySQL 架构组成 前言 麻雀虽小,五脏俱全.MySQL 虽然以简单著称,但其内部结构并不简单.本章从 MySQL 物理组成.逻辑组成,以及相关工具几个角度来介绍 MySQL ...
- IIS 日志文件分析
先安装下文参考资料中的log parser studio 然后就可以针对日志文件进行sql语句的查询了. 各页面访问量排行 ) FROM '[LOGFILEPATH]' where cs-uri-st ...
- 单线程vs多线程
a.多线程可以说是实现异步的一种方式: b.共同点:多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性: c.线程消费CPU资源. 异步消费硬件资源: 1.多线程和异步操作 ...
- Session机制详解
转自:http://justsee.iteye.com/blog/1570652 虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能 ...