我目前正在Visual Studio 2010中进行测试。我创建了一个客户端和服务器,它们都将通过UdpClient连接。
我想从客户端向服务器发送一个对象。 我有两种方法将对象转换为字节并将其转换为对象。 现在,当我测试我的应用程序时,一旦服务器接收到对象,我就无法将其转换回对象。
我的服务器看到对象已经被接收并尝试将其从字节转换为对象,但是这会导致错误。
System.Runtime.Serialization.SerializationException was unhandled Message=Unable to find assembly
因为这两个应用程序位于不同的命名空间中,所以这似乎是可以的...
以下是我用于转换的方法;在客户端和服务器上都相同
public byte[] ToBytes() {
using (MemoryStream stream = new MemoryStream()) {
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, this);
stream.Position = 0;
byte[] byteRij = new byte[1024];
stream.Read(byteRij, 0, (int)stream.Length);
return byteRij;
}
}
public static Datagram ToDatagram(byte[] rij) {
using (MemoryStream stream = new MemoryStream()) {
stream.Write(rij, 0, rij.Length);
stream.Position = 0;
BinaryFormatter formatter = new BinaryFormatter();
return (Datagram)formatter.Deserialize(stream);
}
}
我该如何解决这个问题? 提前感谢。
ToBytes()
方法将无法正常工作。为什么不使用ToArray()
方法呢? - svick