类如何直接转化为bytes

abigfish 2009-07-10 10:25:23
定义一个简单的类如
class myclass
{
byte message_type;
uint message_id;
...
}
当实例化一个myclass后,如何得到这个实例化在内存中的字节流呢?
...全文
94 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wujinjian2008n 2009-07-11
  • 打赏
  • 举报
回复
对象序列化
peterb 2009-07-11
  • 打赏
  • 举报
回复
参考也用C#做个视频监控客户端来玩玩, 一般C++下我们进行网络传输模块开发,会采用结构体来封装组织通信报文,那采用C#开发的客户端程序需与服务端通信,就会碰到怎么把一个结构体转成一个byte数组,以及如何把收到的byte数组数据还原成结构体对象.我们这里就涉及到了C#与其它语言的互操作,也就是所谓的 P/Invoke技术,主要也就是System.Runtime.InteropServices命名空间下的Marshal类的使用.(可参考园友 tuyile006文章struct和byte[]相互转换(用Marshal类实现))
xmaiC 2009-07-11
  • 打赏
  • 举报
回复
支持楼主问这个问题,很多人就是看到你问的问题不符合他的思维,就纳闷,我也没看到那些人有哪个是大师来着
li45214521 2009-07-11
  • 打赏
  • 举报
回复
这里不是C++
sunshine_anycall 2009-07-10
  • 打赏
  • 举报
回复

//实例类
[Serializable]
public class MyObject {
public int n1 = 0;
public int n2 = 0;
public String str = null;
}

以下代码示例说明该类的实例是如何被序列化到一个文件中的。
MyObject obj = new MyObject();
obj.n1 = 1;
obj.n2 = 24;
obj.str = "Some String";
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, obj);
stream.Close();
jzywh 2009-07-10
  • 打赏
  • 举报
回复
二进制序列化


public byte[] SerializeObject(object pObj)
{
if (pObj == null)
return null;
System.IO.MemoryStream _memory = new System.IO.MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(_memory, pObj);
_memory.Position = 0;
byte[] read = new byte[_memory.Length];
_memory.Read(read, 0, read.Length);
_memory.Close();
return read;
}
problc 2009-07-10
  • 打赏
  • 举报
回复
要得到这个字节流干嘛呢,要持久化的话做对象序列话就可以。
实在想看内存,VMMap这个工具也许能提供点提示
V68V6 2009-07-10
  • 打赏
  • 举报
回复
没搞清楚你这么干的意义

up
jf

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧