在使用反射构建模型时,我不知道如何告诉protobuf-net如何使用Google TimeStamp类型而不是protobuf-net类型,在这种情况下我无法注释应该序列化的类。
我像这样添加属性:
ProtoBuf.Meta.RuntimeTypeModel.Default[propertyInfo.DeclaringType].Add(tag, propertyInfo.Name);
但是,如果我注释该属性,它将如下所示:
[ProtoContract]
public class TestClass
{
[ProtoMember(1, DataFormat = DataFormat.WellKnown) ]
public DateTime StartTime { get; set; }
}
所以基本上我需要告诉RuntimeTypeModel使用DataFormat.WellKnown。
而不是Add
(这是一个流畅的 API(,请使用AddField
。这将返回字段的ValueMember
,其中包括.DataFormat
属性。