class myclass
{
byte message_type;
uint message_id;
...
}
当实例化一个myclass后,如何得到这个实例化在内存中的字节流呢?
8 个解决方案
#1
没搞清楚你这么干的意义
up
jf
up
jf
#2
要得到这个字节流干嘛呢,要持久化的话做对象序列话就可以。
实在想看内存,VMMap这个工具也许能提供点提示
实在想看内存,VMMap这个工具也许能提供点提示
#3
二进制序列化
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;
}
#4
//实例类
[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();
#5
这里不是C++
#6
支持楼主问这个问题,很多人就是看到你问的问题不符合他的思维,就纳闷,我也没看到那些人有哪个是大师来着
#7
参考
也用C#做个视频监控客户端来玩玩, 一般C++下我们进行网络传输模块开发,会采用结构体来封装组织通信报文,那采用C#开发的客户端程序需与服务端通信,就会碰到怎么把一个结构体转成一个byte数组,以及如何把收到的byte数组数据还原成结构体对象.我们这里就涉及到了C#与其它语言的互操作,也就是所谓的 P/Invoke技术,主要也就是System.Runtime.InteropServices命名空间下的Marshal类的使用.(可参考园友 tuyile006文章struct和byte[]相互转换(用Marshal类实现))
#8
对象序列化
#1
没搞清楚你这么干的意义
up
jf
up
jf
#2
要得到这个字节流干嘛呢,要持久化的话做对象序列话就可以。
实在想看内存,VMMap这个工具也许能提供点提示
实在想看内存,VMMap这个工具也许能提供点提示
#3
二进制序列化
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;
}
#4
//实例类
[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();
#5
这里不是C++
#6
支持楼主问这个问题,很多人就是看到你问的问题不符合他的思维,就纳闷,我也没看到那些人有哪个是大师来着
#7
参考
也用C#做个视频监控客户端来玩玩, 一般C++下我们进行网络传输模块开发,会采用结构体来封装组织通信报文,那采用C#开发的客户端程序需与服务端通信,就会碰到怎么把一个结构体转成一个byte数组,以及如何把收到的byte数组数据还原成结构体对象.我们这里就涉及到了C#与其它语言的互操作,也就是所谓的 P/Invoke技术,主要也就是System.Runtime.InteropServices命名空间下的Marshal类的使用.(可参考园友 tuyile006文章struct和byte[]相互转换(用Marshal类实现))
#8
对象序列化