相当于序列化与反序列化,但是不用借助外部文件
2008-08-06 11:55
309 查看
1、struct转换为byte[]
static byte[] StructToBytes(object structObj)
{
int size = Marshal.SizeOf(structObj);
IntPtr buffer = Marshal.AllocHGlobal(size);
try
{
Marshal.StructureToPtr(structObj, buffer, false);
byte[] bytes = new byte[size];
Marshal.Copy(buffer, bytes, 0, size);
return bytes;
}
finally
{
Marshal.FreeHGlobal(buffer);
}
}
2、byte[]转换为struct
static object BytesToStruct(byte[] bytes, Type strcutType)
{
int size = Marshal.SizeOf(strcutType);
IntPtr buffer = Marshal.AllocHGlobal(size);
try
{
Marshal.Copy(bytes, 0, buffer, size);
return Marshal.PtrToStructure(buffer, strcutType);
}
finally
{
Marshal.FreeHGlobal(buffer);
}
}
static byte[] StructToBytes(object structObj)
{
int size = Marshal.SizeOf(structObj);
IntPtr buffer = Marshal.AllocHGlobal(size);
try
{
Marshal.StructureToPtr(structObj, buffer, false);
byte[] bytes = new byte[size];
Marshal.Copy(buffer, bytes, 0, size);
return bytes;
}
finally
{
Marshal.FreeHGlobal(buffer);
}
}
2、byte[]转换为struct
static object BytesToStruct(byte[] bytes, Type strcutType)
{
int size = Marshal.SizeOf(strcutType);
IntPtr buffer = Marshal.AllocHGlobal(size);
try
{
Marshal.Copy(bytes, 0, buffer, size);
return Marshal.PtrToStructure(buffer, strcutType);
}
finally
{
Marshal.FreeHGlobal(buffer);
}
}
相关文章推荐
- 对象加密成文件,解密成对象 (读取字节法,不用序列化 反序列化)
- 序列化反序列化对象XML文件写入Sample[简单但是有代表性]
- 不用外部JAR包,自己实现JSP文件上传!
- 如何将多个对象序列化到同一个文件和反序列化
- 类对象序列化(反序列化)成xml文件或者二进制文件到本地文件方法
- iOS archive(归档)的总结 (序列化和反序列化,持久化到文件)
- 文件内存序列化和反序列化
- Java中List或者HashMap对象-序列化和反序列化并附读写文件操作
- MFC文件的读写操作,类的序列化与反序列化,CFile,CFileDialog,CArchive,CStdioFile
- Java序列化与反序列化,文件操作
- Obj-C,文件加载与保存、序列化/反序列化
- .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、拷贝大文件、序列化和反序列化
- 文件内存序列化和反序列化
- iOS archive(归档)的总结 (序列化和反序列化,持久化到文件)
- 2012.6.7文件序列化/反序列化
- 二进制BinaryFormatter 泛型 序列化与反序列化 (保存文件到本地和读取)
- C#序列化/反序列化对象.将对象写入文件,从文件读取对象.
- java中的序列化与反序列化,还包括将多个对象序列化到一个文件中
- Java 对象直接写入文件 --序列化和反序列化
- Java 序列化与反序列化 —— 序列化为一般二进制格式文件