【发布时间】:2015-07-14 08:58:00
【问题描述】:
我有两节课
[Serializable]
public class Class1
{
public List<String[]> items= new List<string[]>();
}
[Serializable]
public class Class2
{
public List<String[]> items = new List<string[]>();
}
我序列化这些类并像这样向客户端发送数据
NetworkStream stream = client.GetStream();
MemoryStream memory = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
Class1 data = new Class1(); // or Class2
data.items.Add(new String[]{"1", "2", "3"});
bf.Serialize(memory, data);
memory.Position = 0;
byte[] buffer = memory.ToArray();
stream.Write(buffer, 0, buffer.Length);
stream.Flush();
当客户端程序从服务器接收数据时,程序会这样处理数据
BinaryFormatter bf = new BinaryFormatter();
MemoryStream memory = new MemoryStream();
NetworkStream stream = client.GetStream();
int bufferSize = client.ReceiveBufferSize;
byte[] buffer = new byte[bufferSize];
int bytes = stream.Read(buffer, 0, buffer.Length);
memory.Write(buffer, 0, buffer.Length);
memory.Position = 0;
但是在这种情况下,我不知道数据的类型是什么...是Class1???或 Class2..
如何知道反序列化类的类型??(或对象)
【问题讨论】:
标签: c# serialization deserialization tcpclient tcp-ip