0

我想将 byte[][] 类型的对象转换为字典。

它总是给出错误“在解析完成之前遇到流结束”。

请帮我 。

 public static object ByteToObjectArray(byte[][] ms)
    {
        BinaryFormatter formatter = new BinaryFormatter();
        MemoryStream mStream = new MemoryStream();
        mStream.Write(ms, 0, (int)ms.Length);
        mStream.Position = 0;
        return formatter.Deserialize(mStream) as object;

    }
4

1 回答 1

0

应该将HGETALL数据返回为

key1
data1
key2
data2
...

如此交错......现在......假设key是UTF8:

public static Dictionary<string, object> ByteToObjectArray(byte[][] bytes)
{
    var dict = new Dictionary<string, object>();
    var formatter = new BinaryFormatter();

    for (int i = 0; i < bytes.Length; i += 2)
    {
        string key = Encoding.UTF8.GetString(bytes[i]);
        // Alternatively
        //string key = Encoding.Unicode.GetString(bytes[i]);

        using (var stream = new MemoryStream(bytes[i + 1]))
        {
            object obj = formatter.Deserialize(stream);

            dict.Add(key, obj);
        }
    }

    return dict;
}
于 2017-03-17T07:16:33.667 回答