通过网络反序列化数据包,发送System.Type还是更好的方法?

时间:2018-12-08 05:10:45

标签: c# .net sockets networking serialization

在我的代码中,我有一个通过网络发送的数据包类,在此数据包结构中,我有一个Type变量,它在数据包中类似于:

[Serializable]
struct Packet 
{
    Type packetType;
}

然后在客户端/服务器上,我可以通过以下操作反序列化:

if(packet.packetType == typeof(ChatPacket))
{
    ChatPacket packet = packet as ChatPacket;
}

这很好,但是我不禁感到System.Type必须有很大的开销。有人可以阐明这一点吗?

如果这很浪费,那么我可以采用什么更好的方法来处理多个数据包(理想情况下,可以包含在类库Packet之外的扩展内容。

0 个答案:

没有答案