Во-первых - вы пытаетесь использовать protobuf-net на iPhone? v1 не должен работать через monotouch; v2 работает (это был большой драйвер для работы v2), но еще не выпущен (в настоящее время он пригоден для использования, но не завершен). Дайте мне знать, если вы пытаетесь это сделать, так как это будет иметь значение; -p
Я полагаю, что они получили это .proto, вызвав Serializer.GetProto<T>
, что, к сожалению, не защищает от ошибок, особенно когда речь идет о Dictionary<,>
(я добавлю TODO, чтобы попытаться исправить это в v2) .
Хорошей новостью является то, что он моделирует Dictionary<TKey,TValue>
как repeated someType
, где someType
должно быть:
message someType {
required keyType key = 1;
required valueType value = 2;
}
И Guid
моделируется как bcl.Guid
(bcl.proto), то есть:
message Guid {
optional fixed64 lo = 1; // the first 8 bytes of the guid
optional fixed64 hi = 2; // the second 8 bytes of the guid
}
Заметьте, однако, что "proto" вообще не требуется вообще , если работает .NET-to-.NET; только совместимые типы.