2017-03-08 66 views
0

我想使用Protobuf序列化C#對象,通過網絡發送它們並在「其他」端反序列化它們。C#Protobuf,提交通用類型信息

因此,客戶端A具有例如下面的代碼:

Serializer.Serialize<ClassA>(stream, instance); 

現在,我希望能夠傳輸類型信息是「ClassA」。在接收端,客戶端B有來電:

ClassA instance = Serializer.Deserialize<ClassA>(stream); 

是否有直接發送通用typeinformation優雅的方式?我能想到的唯一方法是定義一個巨大的枚舉,包含所有可以序列化的類型,並將這些信息與ClassA的實際實例放在一個包裝類中。

非常感謝提示或可能的解決方案!

回答

0

Json.Net可以將對象序列化爲json,如果給它正確的提示,它將通過反序列化它所需的二進制信息發送另一邊。

如果你看看這裏的例子:http://www.newtonsoft.com/json/help/html/SerializeTypeNameHandling.htm

他們用一個列表,其中T是泛型參數。所以在你的情況下T會是別的,但原理是一樣的。