我正在编写一个使用 Protocol Buffer C# 的应用程序。 我需要一些如何通过 TCP 发送和接收数据的示例。 特别是,如何确定到达的是哪种类型的包裹。 我有课:
[ProtoContract]
class Package1
{
//fields
}
[ProtoContract]
class Package2
{
//fields
}
和写入流的方法
private static void SendPackage(Stream stream, Package1 package)
{
Serializer.Serialize<Package1>(stream, package);
}
private static void SendPackage(Stream stream, Package2 package)
{
Serializer.Serialize<Package2>(stream, package);
}
现在,如何判断到达的是哪种类型的包裹?
using (NetworkStream stream = client.GetStream())
{
switch(packageType)
{
//deserialize package
}
}
P.S 抱歉我的英语不好。
最佳答案
有一个 Serializer.NonGeneric 方法可以用来识别对象。看这个问答How can I send multiple types of objects across Protobuf?
关于c# - 如何通过 TCP 和 protobuf-net 接收包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22079042/