C#序列化反序列化对象为base64字符串
2019独角兽企业重金招聘Python工程师标准>>>
之所以序列化为base64 字符串 方便传输,可存储在本地 也可以是服务器
public class Serializer{private Serializer() { }public static string Serialize<T>(T obj){try{IFormatter formatter = new BinaryFormatter();MemoryStream stream = new MemoryStream();formatter.Serialize(stream, obj);stream.Position = 0;byte[] buffer = new byte[stream.Length];stream.Read(buffer, 0, buffer.Length);stream.Flush();stream.Close();return Convert.ToBase64String(buffer);}catch (Exception ex){Debug.LogError(" Serialize error " + ex.Message);return null;}}public static T Deserialize<T>(string str){T obj = default(T);try{IFormatter formatter = new BinaryFormatter();byte[] buffer = Convert.FromBase64String(str);MemoryStream stream = new MemoryStream(buffer);obj = (T)formatter.Deserialize(stream);stream.Flush();stream.Close();}catch (Exception ex){Debug.LogError(" Serialize error " + ex.Message);return obj;}return obj;}//将一组array 对象 序列化为 基于base64的存储stringpublic static string SerializeMulti<T>(IEnumerable objs){string ser_str = "";foreach (T data in objs){string str = Serialize<T>(data);ser_str += str + SPLIT_FLAG_BASE64;}return ser_str;}//从 字符串 反序列化出对象数组public static ArrayList DeserializeMulti<T>(string ser_str) where T : new(){ArrayList ret = new ArrayList();if (string.IsNullOrEmpty(ser_str)){return ret;}string[] strs = ser_str.Split(SPLIT_FLAG_BASE64);if (strs.Length <= 0) return ret;foreach (string s in strs){if (string.IsNullOrEmpty(s)) continue;var obj = Deserialize<T>(s);ret.Add(obj);}return ret;}public const char SPLIT_FLAG_BASE64 = (char)111;//base64 生成的间隔标识符数值 只要不是base64 生成的char 都可以当做间隔符}
转载于:https://my.oschina.net/kkkkkkkkkkkkk/blog/1499345
C#序列化反序列化对象为base64字符串相关推荐
- java字符串序列化_java对象序列化为字符串
1 场景 java对象某些时候,需要序列化成字符串存储在数据库中,需要的时候,再将字符串反序列化为java对象. 如使用shiro缓存分布式session,需要将session对象序列化成字符串存储在 ...
- 【Groovy】json 序列化 ( 类对象转为 json 字符串 | 使用 JsonBuilder 进行转换 | 使用 JsonOutput 进行转换 | 将 json 字符串格式化输出 )
文章目录 一.Groovy 对象转为 json 字符串 ( 使用 JsonBuilder 进行转换 ) 二.使用 JsonOutput 将指定类型对象转为 json 字符串 三.将 json 字符串格 ...
- 序列化之对象,字符串,byte数组,XML之间的转换(一)
工作一年多了,越来越感到自己不能这样一直下去,在最好的青春里面却已经死了.被时间消磨了意志,被工作杀死了精神.我想,我只要活着,我就要去不断的要求自己,不断的去追求更高的山峰. 放眼四周,有趣的灵魂越 ...
- 用 XStream 序列化/反序列化 XML 为 Java 对象(实例)
用 XStream 序列化/反序列化 XML 为 Java 对象(实例) Posted on 2007-06-05 19:06 Stephen Wong 阅读(1224) 评论(0) 编辑 收藏 网 ...
- Java19-day10【标准输入输出流、字节字符打印流、对象序列化-反序列化流、serialVersionUIDtransient、Properties】
视频+资料[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] Java基础--学习笔记(零起点打开java世界的大门)--博 ...
- JAVA使用ByteArrayOutputStream、ByteArrayInputStream将对象序列化反序列化,通过JAVA socket实现对象在网络中传输
1.序列化和反序列化: 序列化是对象(类的实例)转换成字节数组或者字符串通过网络传输或者存储到本地文件.反序列化:就是将字节数组或字符串在转换成对象实例的过程. (因为在网络中传输或者写本地文件,是不 ...
- Web前台传对象字符串到后台并让后台反序列化对象字符串的方法(ASP.NET) json对象和字符串的转换
从零开始做了两个月多一点的.NET开发,期间经常遇到需要从Web前台传数据给后台处理的情况.比如下面(用了jQuery的Ajax Post),这里为了演示方便没有对参数进行encodeURICompo ...
- 反序列化对象列表发生异常_Apache Thrift系列详解:序列化机制
前言 Thrift支持二进制,压缩格式,以及json格式数据的序列化和反序列化.开发人员可以更加灵活的选择协议的具体形式.协议是可自由扩展的,新版本的协议,完全兼容老的版本! 正文 数据交换格式简介 ...
- Java对象序列化乱码6_对象序列化成字符串乱码解决
问题描述: 将一个对象序列化成字符串后,字符串是乱码的,并且反序列化报错. 代码如下: import com.alibaba.fastjson.JSONObject; import org.sprin ...
最新文章
- 技术13期:一文读懂Flink的流式处理及窗口理解
- 人人都可以做深度学习应用:入门篇
- 浅谈Android中Lifecycle
- 物化视图是否可以exp导出_物化视图导出导入可能导致物化视图日志的失效
- 集成JavaFX和Swing
- mysql 导出所有表_Mysql导出(多张表)表结构及表数据 mysqldump用法
- 【大事化小,小事化无】的意思和解释
- day15-CSS内容补充之overflow
- java中拦截器和过滤器详解
- SpringBoot拦截全局异常并发送邮件给指定邮箱
- matlab autocad选哪个,cad哪个版本最好用,如何选择?
- 按键精灵+屏幕录像专家实现数据抓包录制
- 键盘对于程序员的价值
- pytorch之拿训练好的LeNet模型测试自己的手写图片预测失败
- 文明与征服君士坦丁阵容搭配推荐 文明与征服君士坦丁攻略
- MOVS,LODS,CMPS,SCAS,STOS
- oracle11g memory_target,oracle11g要求在操作系统层设定共享内存/dev/shm,且大于MEMORY_TARGET...
- 【微信小程序】开发入门篇(一)
- 三星自定义状态栏_极简操作无需root隐藏S8导航栏和状态栏
- internet时间和域
热门文章
- 清华大学计算机系人机交互,喻 纯 - 清华大学 - 《自然人机交互中的智能输入》(47页)-原创力文档...
- 托管数据中心vs.云计算:保障关键任务数据安全
- springmvc笔记(1)—使用maven快速构建springmvc项目
- OJ题目-使用+-|等符号表示数字,进行运算【C语言】
- cocos2d-x 3.8.1的骨骼动画加载方法addArmatureFileInfo仍然存在问题
- fedora17用yum下载包而不安装包
- 如何读emmc里的引导程序_自制操作系统学习1 引导程序
- MYSQL实现分组排序并取组内第一条数据
- 搜索(DFS)---好友关系的连通分量数目
- python的上下文管理