我目前正在visual studio 2010測試。我做了一個客戶端和服務器,它們都將通過UdpClient連接。用UdpClient C發送對象#
我想從客戶端發送一個對象到服務器。我有兩種方法將對象轉換爲字節並將其轉換爲對象。現在,當我測試我的應用程序時,我無法將其轉換回服務器上收到的對象
我的服務器發現該對象已收到並試圖將其從字節轉換爲對象,但這會產生錯誤。
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()'方法將無法正常工作是序列化形式大於1024字節。爲什麼不使用['ToArray()'方法](http://msdn.microsoft.com/zh-cn/library/system.io.memorystream.toarray.aspx)? – svick 2011-06-12 10:37:49