c# - 反序列化大对象

时间:2012-08-16 04:29:49

标签: c# serialization tcp bittorrent monotorrent

我有一个聊天,它有一个文件共享系统,我通过稍微修改monotorrent。

当用户共享文件时,客户端序列化Monotorrent.common.torrent对象(表示.torrent文件)并将其发送到另一个对象内的服务器,然后服务器对其进行反序列化。仅当用户共享的文件很小(大约小于1 MB)时才有效。当它的较大时,服务器给出以下例外:

  

二进制流'0'不包含有效的BinaryHeader。可能   原因是无效的流或对象版本之间的变化   序列化和反序列化。

这是我的反序列化代码:

public CommendData ByteArrayToCommendData(byte[] arrBytes)
{
    using (MemoryStream memStream = new MemoryStream(arrBytes))
    {
        BinaryFormatter binForm = new BinaryFormatter();
        memStream.Seek(0, SeekOrigin.Begin);
        CommendData obj = (CommendData)binForm.Deserialize(memStream);
        return obj;
    }
}

(CommendData包含此实例中的Monotorrent.common.torrent对象)

0 个答案:

没有答案