我正在尝试通过网络序列化一个类,但我一直收到以下错误。
System.Runtime.Serialization.SerializationException: 'End of Stream encountered before parsing was completed.'
我见过几个线程,建议将网络流转换为内存流,以便将位置设置为0,但这对我不起作用。
我的代码是
'Receiver
Private Sub ReceivingMethod()
Dim f As BinaryFormatter = New BinaryFormatter()
Dim msg As clsMessage
msg = f.Deserialize(TCPClient.GetStream())
ProcessMessage(msg)
Threading.Thread.Sleep(50)
End Sub
'Sender
Private Sub SendingMethod()
do while MessageQueue.count > 0
'Get the first message from the queue
Dim msg As clsMessage = MessageQueue(0)
Dim f As BinaryFormatter = New BinaryFormatter()
f.Serialize(TCPClient.GetStream(), msg)
MessageQueue.Remove(msg)
End If
Threading.Thread.Sleep(50)
Loop
End Sub
非常感谢任何帮助。
答案 0 :(得分:0)
我发现protobuf-net很容易实现,并且比使用二进制格式化器更容易。我最初认为“它有多难”,但后来很明显为什么要创建外部序列化。
谢谢大家。