【发布时间】:2017-02-01 22:50:35
【问题描述】:
protogen.exe 为 proto2 类型为 long 的消息字段生成此模式:
private long _Count = default(long);
[global::ProtoBuf.ProtoMember(1, IsRequired = false, Name=@"Count", DataFormat = global::ProtoBuf.DataFormat.TwosComplement)]
[global::System.ComponentModel.DefaultValue(default(long))]
public long Count
{
get { return _Count; }
set { _Count = value; }
}
但由于proto2 不包含日期时间类型(并且protobuf-net 不支持包含google.protobuf.Timestamp 的proto3),因此尚不清楚如何在手动编码的C# proto 对象中表示DateTime。
这可能是错误的:
private DateTime _When = DateTime.MinValue;
[global::ProtoBuf.ProtoMember(1, IsRequired = false, Name=@"When", DataFormat = global::ProtoBuf.DataFormat.Default)]
[global::System.ComponentModel.DefaultValue(DateTime.MinValue)]
public DateTime When
{
get { return _When; }
set { _When = value; }
}
装饰DateTime 属性以与protobuf-net 一起使用的正确方法是什么?
【问题讨论】:
标签: c# datetime timestamp protocol-buffers protobuf-net