如果我序列化(使用protobuf)在c#中的矩形(System.Drawing.Rectangle),是否可能在Objective-C或C++中反序列化它,因爲System.Drawing.Rectangle不是像int那樣的常見類型。從.Net到C++的序列化類型System.Drawing.Rectangle使用protobuf
如果可能,在C++或Objective-c中獲取這個矩形的最佳方法是什麼?
如果我序列化(使用protobuf)在c#中的矩形(System.Drawing.Rectangle),是否可能在Objective-C或C++中反序列化它,因爲System.Drawing.Rectangle不是像int那樣的常見類型。從.Net到C++的序列化類型System.Drawing.Rectangle使用protobuf
如果可能,在C++或Objective-c中獲取這個矩形的最佳方法是什麼?
我通過使用自己的類類型來修復它,我的意思是將System.Drawing.Rectangle替換爲我自己的類,而不是包含相同的屬性。
我的意思是如果你想序列化和反序列化你必須使用常見的類型。
的System.Drawing.Rectangle
類型在protobuf網(自動元組代碼不會因爲一些額外的屬性的觸發)直接支持,所以我假設你無論是在地方有一個替代,或要手動配置模型 - 例如:
RuntimeTypeModel.Default.Add(typeof(Rectangle),false)
.Add("X","Y","Width","Height");
在這種情況下,你需要做的是創建一個匹配一個.proto架構。 protobuf網實際上會幫助你在這裏:
var proto = RuntimeTypeModel.Default.GetSchema(typeof(Rectangle));
這對我來說(即,對於我所使用的配置)產生:
message Rectangle {
optional int32 X = 1;
optional int32 Y = 2;
optional int32 Width = 3;
optional int32 Height = 4;
}
這應該是任何protobuf的實現使用。
我已經有一個包含System.Drawing.Rectangle類型的bin文件! –
「這個矩形」究竟是什麼?請告訴我們你的代碼。 –
bin文件已經存在並且包含矩形,可以在C++中獲得相同的矩形嗎? –