Я пытаюсь понять поддержку словаря / KeyValuePair protobuf-net. Мы хотели бы использовать базовый двоичный поток и сгенерированный файл протоки из java, но сгенерированный файл .proto содержит то, что похоже на пользовательский тип с именем Pair_String_Int32.
Может кто-нибудь пролить свет на это?
У меня есть класс, подобный этому:
[DataContract]
public class ForwardCurve
{
[DataMember(Order=1, IsRequired = true)]
public string Commodity { get; set; }
[DataMember(Order = 2, IsRequired = false)]
public IDictionary<string, int> DictValue { get; set; }
[DataMember(Order = 3, IsRequired = false)]
public IList<string> ListValue { get; set; }
}
Сгенерированный файл .proto с использованием Serializer.GetProto будет:
message ForwardCurve {
required string Commodity = 1;
repeated Pair_String_Int32 DictValue = 2;
repeated string ListValue = 3;
}
Так что же такое Pair_String_Int32 (и что входит в поток байтов protobuffer) и есть ли способ отобразить это так, чтобы protobuf с помощью protoc мог создать эквивалентный код отображения в Java?