【发布时间】:2019-07-03 05:10:47
【问题描述】:
如何通过 ProtoBuf 使用 DateTimeKind 选项序列化日期时间字段。反序列化时,我想要带有 DateTimeKind 选项的日期时间字段。
我知道我们可以通过添加一个额外的属性来将反序列化的值转换为 UTC 格式来实现这一点。
例如,我有一个名为 UtcDateTime 的日期时间字段。它具有 UTC 类型格式的值。当序列化和反序列化这个值时,我得到了正确的结果,但它未能检索到日期时间类型选项。
这是我的示例代码:
[ProtoIgnore]
public DateTime UtcDateTime { get; set; }
[ProtoMember(3)]
public DateTime DateTimeValue
{
get { return UtcDateTime ; }
set { UtcDateTime = DateTime.SpecifyKind(value, DateTimeKind.Utc); }
}
现在考虑我的情况,我的应用程序有很多这样的日期时间字段。我不需要在所有地方添加额外的属性,而是需要一个通用的解决方案来实现这一点。如果可能,请解释如何使用示例 C# 逻辑来实现这一点。提前致谢。
【问题讨论】:
标签: c# datetime protobuf-net