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);  
  }  
  }
posted on 2008-08-06 11:55  Dufe王彬  阅读(216)  评论(0编辑  收藏  举报