博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
步步为营:Asp.Net序列化与反序列化
阅读量:7011 次
发布时间:2019-06-28

本文共 2877 字,大约阅读时间需要 9 分钟。

最近在跟MySql打交道,PHP的程序是将实体中的数据整个序列化后存入数据库中,形成的格式是

a:2:{i:1;i:1;s:5:"value";a:2:{i:1;i:1;s:5:"value";N;}}

这让我思考,我在.net程序中能否读取出来呢,好像.net也没有这样格式的序列化方法,由于PHP的数据是没有类型的。

这可如何办捏....????

将序列化的方法都列一遍

#region XML序列化 ///  /// 将对象序列化为Xml格式字符串 ///  /// 对象 /// 
public static string SerializeToXml(object obj) {
StringWriter sw = null; try {
XmlSerializer xmlser = new XmlSerializer(obj.GetType()); sw = new StringWriter(); xmlser.Serialize(sw, obj); return sw.ToString(); } catch (Exception ex) {
throw new Exception("序列化失败", ex); } finally {
sw.Close(); sw.Dispose(); } } #endregion #region XML反序列化 /// /// 将Xml格式字符串反序列化为对象 /// ///
泛型
/// 反序列的字符串 ///
public static T DeserializeToXml
(string str) {
StringReader sr = null; try {
XmlSerializer xmlser = new XmlSerializer(typeof(T)); sr = new StringReader(str); return (T)xmlser.Deserialize(sr); } catch (Exception ex) {
throw new Exception("反序列化失败", ex); } finally {
sr.Close(); sr.Dispose(); } } #endregion #region 二进制序列化 ///
/// 将对象序列化为Base64编码字符串 /// ///
对象 ///
public static string SerializeToBase64(object obj) {
MemoryStream ms = null; try {
BinaryFormatter format = new BinaryFormatter(); ms = new MemoryStream(); byte[] bytes = new byte[ms.Length]; ms.Seek(0, SeekOrigin.Begin); ms.Read(bytes, 0, bytes.Length); return Convert.ToBase64String(bytes); } catch (Exception ex) {
throw new Exception("序列化失败!", ex); } finally {
ms.Close(); ms.Dispose(); } } #endregion #region 二进制反序列化 ///
/// 将Base64编码的字符串反序列化为对象 /// ///
///
///
public static T DeserializeToBase64
(string str) {
MemoryStream ms = null; try {
BinaryFormatter format = new BinaryFormatter(); byte[] bytes = Convert.FromBase64String(str); ms = new MemoryStream(); ms.Write(bytes, 0, bytes.Length); ms.Seek(0, SeekOrigin.Begin); return (T)format.Deserialize(ms); } catch (Exception ex) {
throw new Exception("反序列化失败!", ex); } finally {
ms.Close(); ms.Dispose(); } } #endregion

 

转载于:https://www.cnblogs.com/79039535/archive/2011/12/08/2281042.html

你可能感兴趣的文章