可以这样吗,把Hashtable的数据变成一个字符串,每个字符串中间用分隔符隔开,然后再把字符串转换成Byte[]型的

解决方案 »

  1.   

    下面代码应该可以解决问题:/// <summary>
    /// 序列化为二进制字节数组
    /// </summary>
    /// <param name="request">要序列化的对象</param>
    /// <returns>字节数组</returns>
    public static byte[] SerializeBinary(object request) 
    {
    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter serializer = 
    new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
    System.IO.MemoryStream memStream = new System.IO.MemoryStream();
    serializer.Serialize(memStream, request);
    return memStream.GetBuffer();
    }/// <summary>
    /// 从二进制数组反序列化得到对象
    /// </summary>
    /// <param name="buf">字节数组</param>
    /// <returns>得到的对象</returns>
    public static object DeserializeBinary(byte[] buf) 
    {
    System.IO.MemoryStream memStream = new MemoryStream(buf);
    memStream.Position=0;
    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter deserializer = 
    new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
    object newobj = deserializer.Deserialize(memStream);
    memStream.Close();
    return newobj;
    }
    private void button3_Click(object sender, System.EventArgs e)
    {
    Hashtable hash = new Hashtable();
    hash["abc"] = 1;
                               //序列化
    byte[] data = Utility.SerializationUtil.SerializeBinary(hash);                           //重新取回数据
    Hashtable hash1 = (Hashtable)Utility.SerializationUtil.DeserializeBinary(data);
    MessageBox.Show(hash["abc"].ToString());}