翼度科技»论坛 编程开发 .net 查看内容

DOTNET MessagePack序列化/反序列化时不保留 DateTime.Kind

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
最近又遇到个奇怪的问题,查询出来的时间比数据库中字段存的时间多8小时。
发现是用了efcore的二级缓存,本来用json序列化的,后来为了性能改成MessagePack,最后定位就是MessagePack序列化/反序列化时不保留 DateTime.Kind,导致从redis里拿到的数据中时间值+8小时了,试着写IMessagePackFormatter或者IFormatterResolver等都无法解决,只能先放弃二级缓存,或者后面还是改成Json了。
当然似乎服务器代码中全部用utc才是最佳做法,但是太多数据没法修改。
还看到微软的signalr文档也提醒了这个问题,但没有解决方案。
https://learn.microsoft.com/zh-cn/aspnet/core/signalr/messagepackhubprotocol?view=aspnetcore-8.0#datetimekind-is-not-preserved-when-serializingdeserializing

来源:https://www.cnblogs.com/pains/p/18563081
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具