您的位置:首页 > 其它

相当于序列化与反序列化,但是不用借助外部文件

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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: