object转byte.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
object转byte

如何将object转换成byte[] 假设函数接口是void foo(object obj) 函数做的事情是将obj对象的数据内容转换成byte[],c#如何做? lrq0531 回复: public struct cc { int a; char c; }; cc _cc = new cc(); foo(_cc); lovvver 回复: /// summary /// Summary description for Serializer. /// /summary public class Serializer { public Serializer(){} /// summary /// 二进制序列化 /// /summary /// param name=obj/param /// returns/returns public static byte[] SerializeBinary(object[] obj) { if(obj == null || obj.Length ==0) return new byte[]{} ; for (int i=0; iobj.Length; i++) { if (obj[i]!=null obj[i] is DataSet) { obj[i] = new DataSetSurrogate((DataSet)obj[i]); } } BinaryFormatter se =new BinaryFormatter(); MemoryStream memStream = new MemoryStream(); se.Serialize(memStream, obj); byte[] bobj = memStream.ToArray(); memStream.Close(); return bobj; } /// summary /// 二进制反序列化 /// /summary /// param name=bobj/param /// returns/returns public static object[] DeserializeBinary(byte[] bobj) { if(bobj==null || bobj.Length == 0) return new object[]{} ; MemoryStream memStream = new MemoryStream(bobj); memStream.Position = 0; BinaryFormatter de =new BinaryFormatter(); object[] newobj = null; newobj =(object[])de.Deserialize(memStream); memStream.Close(); for (int i=0; inewobj.Length; i++) { if (newobj[i]!=null newobj[i] is DataSetSurrogate) { newobj[i] = ((DataSetSurrogate)newobj[i]).ConvertToDataSet(); } } return newobj; } } //调用序列化方法 private void foo(object obj) { byte[] bt = Serializer.SerializeBinary(new object[]{obj}); } lrq0531 回复: foo(obj) { int __size = MarShal.SizeOf(obj); IntPtr ptr = MarShal.AllocGLOABL(__size); Marshal.structtoptr(obj, ptr, true); byte* bp = (byte*)ptr.topointer(); ... } 也可以达到目的 object-- byte MemoryStream ? s ? = ? new ? MemoryStream(); s.Position ? = ? 0; BinaryFormatter ? bf ? = ? new ? BinaryFormatter(); bf.Serialize(s,Myobject); byte[] ? mybytes ? = ? s.ToArray(); byte[] btArray = new byte[]; for(...) { ? ? ? btArray

文档评论(0)

ipbohn97 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档