如何使用二进制格式化程序在 C# 中将 2D 二进制对象转换为字典<字符串、对象>



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

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

请帮助我.

 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;
    }

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;
}

最新更新