我将通过序列化和通过TcpClient发送,在服务器/客户端应用程序之间发送不同的对象类型。当我反序列化流时,我最好如何获得正确的类型?
大多数对象的大小将是< 100字节,但有时可能高达几十万字节。对于这种情况,它将只传输5-10个潜在的类类型。
我想我可以为各种类型添加一系列Try-Catch,看看有什么成功。虽然我正在考虑在流的开头创建一个固定字段,该字段具有可用于通过select语句“手动”识别类型的代码。
请在这里评论一下可能是一个合适的解决方案。
答案 0 :(得分:0)
我假设对象已经正确反序列化。我会使用一个大的if对象是类型然后......其他...
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);