二进制数组与基础类型转换

/// <summary>
/// 工具类:对象与二进制流间的转换
/// </summary>
class ByteConvertHelper
{
/// <summary>
/// 将对象转换为byte数组
/// </summary>
/// <param name="obj">被转换对象</param>
/// <returns>转换后byte数组</returns>
public static byte[] Object2Bytes(object obj)
{
byte[] buff = new byte[Marshal.SizeOf(obj)];
IntPtr ptr = Marshal.UnsafeAddrOfPinnedArrayElement(buff, 0);
Marshal.StructureToPtr(obj, ptr, true);
return buff;
}

/// <summary>
/// 将byte数组转换成对象
/// </summary>
/// <param name="buff">被转换byte数组</param>
/// <param name="typ">转换成的类名</param>
/// <returns>转换完成后的对象</returns>
public static object Bytes2Object(byte[] buff, Type typ)
{
IntPtr ptr = Marshal.UnsafeAddrOfPinnedArrayElement(buff, 0);
return Marshal.PtrToStructure(ptr, typ);
}
}

posted @ 2024-05-21 22:57  孙延坤  阅读(19)  评论(0)    收藏  举报