protogen.exe
生成此圖案用於long
類型的proto2
消息字段:protobuf-net:如何在C#中表示DateTime?
private long _Count = default(long);
[global::ProtoBuf.ProtoMember(1, IsRequired = false, [email protected]"Count", DataFormat = global::ProtoBuf.DataFormat.TwosComplement)]
[global::System.ComponentModel.DefaultValue(default(long))]
public long Count
{
get { return _Count; }
set { _Count = value; }
}
但作爲proto2
不包括日期時類型(和protobuf-net
不支持proto3
包括google.protobuf.Timestamp
)還不清楚如何表示DateTime
在手動編碼的C#proto對象中。
這可能是錯誤的:
private DateTime _When = DateTime.MinValue;
[global::ProtoBuf.ProtoMember(1, IsRequired = false, [email protected]"When", DataFormat = global::ProtoBuf.DataFormat.Default)]
[global::System.ComponentModel.DefaultValue(DateTime.MinValue)]
public DateTime When
{
get { return _When; }
set { _When = value; }
}
什麼是裝飾使用DateTime
性能與protobuf-net
正確的方法是什麼?
謝謝Marc。是的,我需要DateTime類型的公共屬性,所以建議選擇2或3。但是我不理解選項3,因爲proto2不支持DateTime - 如何在線上表示DateTime? – BaltoStar
@Balto見Bcl.Proto。基本上,protobuf網使一些東西。如果你需要xplat:使用長技巧(#2),IMO –
我假設'DateTime'默認值是'[「1/1/0001 12:00:00 AM」]'='DateTime.MinValue'。但是'DateTime DataFormat'呢? – BaltoStar