我正在尝试了解 protobuf-net 的 Dictionary/KeyValuePair 支持。我们想使用底层二进制流和从 java 生成的 proto 文件,但是生成的 .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; }
}
使用 Serializer.GetProto 生成的 .proto 文件将是:
message ForwardCurve {
required string Commodity = 1;
repeated Pair_String_Int32 DictValue = 2;
repeated string ListValue = 3;
}
那么什么是 Pair_String_Int32 (以及进入 protobuffer 字节流的内容),有什么方法可以映射它,以便 protobuf 通过使用 protoc 可以在 Java 中创建等效的映射代码?