如题 
   

解决方案 »

  1.   

    不同语言 定义的结构体 可能存在对位 的问题,导致对象不能正确解析, 还牵涉到 数据类型的 长度问题 
      
    定义结构体 
      
    public struct MyStruct{ 
        public int _number; 
        public string _text; 

      
    在C#中 建议你使用string而不是char数组存储字符串 
    还有 请在每一个字段前加入public 否则你会访问不到,C#相比C是有访问修饰的  
      
    将一个对象序列化成二进制数组2007年08月21日 星期二 下午 10:53//将一个对象序列化成二进制数组 C# codeprivate byte[] SerializeToByte(ArrayList list)
    {
    //假如Arraylist为空,则返回null
    if (list.Count == 0)
    {
    return null;
    }
    byte[] array = null;
    try
    {
    //定义一个流
    Stream stream = new MemoryStream();
    //定义一个格式化器
    BinaryFormatter bf = new BinaryFormatter();
    //将Arraylist中的对象逐一进行序列化
    foreach (object obj in list)
    {
    bf.Serialize(stream, obj);
    }
    array = new byte[stream.Length];
    //将二进制流写入数组
    stream.Position = 0;
    stream.Read(array, 0, (int)stream.Length);
    //关闭流
    stream.Close();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    return null;
    }
    return array;
    }