http://community.csdn.net/Expert/topic/3558/3558395.xml?temp=.3889887 里面是的问题也是我问的,和这个问题是一个问题,里面有详细的描述。
   
   多谢各位的帮忙了!!!!

解决方案 »

  1.   

    存储到数组可以使用二进制序列化类:
    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
      

  2.   

    Sunmast(速马|Reloading...) ,
    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter 没有用过,可以把结构中的数据序列化到一个byte[]里面吗?
      

  3.   

    我认为在C#中不可能直接将STRUCT内的数据支持放到byte数组中,因为struct在C++中已经不再是将C中的概念了,在C中struct可以看成是一个多种数据被格式化后放在一起的数据块,在C++中则看成是一个默认所有成员为public类型的内,里面存放的已经不单纯是数据了,还包涵了一些类的内部信息,在C#中我相信这种情况可能更是如此。
    如果要实现楼主所希望的功能,除了自己编码,我相信没有别的方法了。但方法也不会是太麻烦,可以定义一个函数如ToBytes,可以利用下面的一些方法将数据转换成byte[]
    byte[]转其它类型
    System.Text.Encoding.Default.GetByte(byte[])//转换为string
    System.BitConverter.ToInt(byte[],startindex);//转换为int
    System.BitConverter.ToInt64(byte[],startindex);//转换为int64
    System.BitConverter.ToChar(byte[],startindex);//转换为char
    ………………
    其它类型转byte[]
    System.Text.Encoding.Default.GetBytes(string);//由string转换
    System.BitConverter.GetBytes();//由其它数值类型转换
      

  4.   

    wanzhigang:
    1、序列化机制可以把任何支持序列化的对象序列化为流,然后很容易就能转为byte[]
    2、.NET的序列化机制和C/C++的struct->byte[]也不一样,后者仅相当于内存拷贝
    3、在非安全上下文中,.NET也能实现和C/C++一样的转换