protobuf-net是否有办法自动以UTC编码DateTime值但使用ToLocalTime解码?

我正在不同时区的系统之间传递消息,并希望将DTO中的每个DateTime属性序列化为UTC(在编码之前基本上自动调用ToUniversalTime)并在LocalTime中解码,以便接收消息的系统可以在DateTime上自动运行LocalTime中的属性,因此开发人员不必记住通过有线接收DTO的每个属性上调用ToLocalTime吗?

最佳答案

对于这种类型的转换,通常的方法是具有两个属性:

[ProtoMember(n, ...)]
public DateTime When { get; set; }

public DateTime WhenLocal => When.ToLocal(); // etc


如果没有该属性,则序列化程序将不会在意该序列化程序。如果您真的不希望调用者使用它,则serializer属性可以是私有的。

关于c# - protobuf-net编码DateTime UTC解码ToLocalTime,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48723723/

10-11 10:23
查看更多