protogen.exe
会为类型为 long
的 proto2
消息字段生成此模式:
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; }
}
什么是使用protobuf-net处理DateTime属性的正确方式?
DateTime
的默认值是["1/1/0001 12:00:00 AM"]
=DateTime.MinValue
. 但是DateTime DataFormat
呢? - BaltoStarDateTime?
?可能使用long?
吗? - BaltoStar