惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
腾讯CDC
G
Google Developers Blog
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
有赞技术团队
有赞技术团队
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
美团技术团队
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

博客园 - 小灰灰开始整活儿啦

喔去,litellm 竟然被投毒了,赶紧检查你的机器中招了没有 KMP跨平台开发中的现状调研 [随记]iphone加粗字体 如何获得毫秒级时间(iphone) Mac os 截屏快捷键 消灭Warning 'ClassName' may not respond to '-funcName:args' 给xcode设置快捷键 - 小灰灰开始整活儿啦 - 博客园 [转]iPhone系统常用文件夹位置 Xcode 快捷键全集[转] iphone中如何进行多线程编程[转] NSString详细介绍 Iphone UILabel显示多行文本的方法 iPhone上的JSON[转] Iphone dev -json-1- Transfer json data by Http Submitting HTTP Requests (iPhone) 不支持js的(wap2.0)手机清单 Safe characters for friendly url HTC 手机的'Length Require的Bug [编程点滴]将string 转化成enum最简单的办法。
.net 序列化反序列化小节
小灰灰开始整活儿啦 · 2011-05-26 · via 博客园 - 小灰灰开始整活儿啦

整理一下.net的三种主流序列话方式,方便ctrl+c,v 。还少Json.net的序列化方式,因为最近用那个发现点问题,正在研究他的源代码,有了结论再发。还有自定义流协议(方便跨平台),有个代码生成器,有时间整理一下单独发出来。 

一、流方式:

//序列化
      MemoryStream memStream = new MemoryStream();
      
new BinaryFormatter().Serialize(memStream, obj);
      var buf
= memStream.GetBuffer();
//反序列化
    MemoryStream memStream = new MemoryStream(buf);
    
object obj = new BinaryFormatter().Deserialize(memStream); 

 二、xml方式:

//序列化:
    XmlSerializer xs = new XmlSerializer(typeof(obj));
    MemoryStream memStream 
= new MemoryStream ();
    xs.Serialize(memStream , obj);
//反序列化:
    XmlSerializer xs = new XmlSerializer(typeof(obj));
    MemoryStream memStream 
= new MemoryStream ();

    boject obj = xs.Deserialize(memStream);

 三、Json方式:

//序列化:
    DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(T));
    MemoryStream memStream 
= new MemoryStream();
    js.WriteObject(memStream, obj);
    
string jStr = Encoding.UTF8.GetString(ms.ToArray());//反序列化:
    DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(T));
    MemoryStream memStream 
= new MemoryStream(Encoding.UTF8.GetBytes(jStr));

    object obj = js.ReadObject(memStream);  

 四、自定义

一般是自定义的流协议,配合代码生成器,可以实现各种设备间无障碍通讯(本人在无线开发、网游开发中常用此方法),可以考虑把代码生成器整理一下公布出来,现在看还比较烂;)