我将通过序列化和通过TcpClient发送,在服务器/客户机应用程序之间发送不同的对象类型。当我对流进行反序列化时,如何最好地获得正确的类型?
大多数对象的大小都小于100字节,但有时可能高达几十万字节。对于这种情况,将只有5-10个潜在的类别类型要传输。
我想我可以对不同的类型进行一系列的Try-Catch,看看什么能成功。虽然我正在考虑在流的开头创建一个固定的字段,它有一个代码,可以用来通过select语句“手动”标识类型。
请在这里评论什么可能是一个合适的解决方案。
发布于 2011-08-04 02:50:23
我假设对象已经正确地反序列化了。我会使用一个大的if对象是then类型...否则..。
object deserializedObject = Deserialize(....);
if (deserializedObject is string)
ProcessString ((string)deserializedObject);
else if (deserializedObject is byte[])
ProcessBytes ((byte[])deserializedObject);
else if (deserializedObject is Uri)
ProcessUri ((Uri)deserializedObject);
else
throwOrLog (deserializedObject);https://stackoverflow.com/questions/6931501
复制相似问题