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

推荐订阅源

F
Fortinet All Blogs
有赞技术团队
有赞技术团队
量子位
N
Netflix TechBlog - Medium
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
Google DeepMind News
Google DeepMind News
aimingoo的专栏
aimingoo的专栏
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
Martin Fowler
Martin Fowler
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
V
V2EX
IT之家
IT之家
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

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

喔去,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);  

 四、自定义

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