Я новичок в буферах протоколов и использую protobuf-net для VS2010. из того, что я здесь читаю Dictionary in protocol buffers, не похоже, что protobuf может сериализовать словарь с типами объектов в качестве значений. но здесь, на его сайте, я прочитал это:
Заметки о поддерживаемых типах
:
пользовательские классы, которые: помечены как контракт данных, имеют параметр без параметров конструктор для Silverlight: открыты многие общие примитивы и т. д. одномерные массивы: T[] List / IList Словарь / IDictionary любого типа, который реализует IEnumerable и имеет метод Add(T). Код предполагает эти типы будут изменяться вокруг избранных членов. Соответственно, пользовательские структуры не поддерживаются, поскольку они должны быть неизменяемыми.
, похоже, поддерживается.
Я могу успешно скомпилировать список объектов следующим образом:
message ValuesObject {
optional int32 SomeVal = 1;
repeated SomeClass ListOfSomeClassTypes = 2;
}
Это прекрасно работает для List
. Почему я не могу сериализовать с помощью protobuf-net a Dictionary
? Как будет выглядеть сообщение для сериализации Dictionary
?