我有一个这样的 POCO:
public class BlogEntry
{
public string Title { get; set; }
public DateTime Date { get; set; }
}
大多数情况下,它是从 Entity Framework 中获得的,但它可以并且将在 Entity Framework 之外使用。
来自 EF 的日期的 DateTimeKind 是未指定的,从我读到的内容是正常的。
当我在 Redis 中缓存这个 POCO(使用 ServiceStack Redis 客户端)时,它返回一个 DateTimeKind of Local。
因此,返回的对象存在抖动。第一遍(未缓存)具有 ISO-8601,没有偏移(DateTimeKind.Unspecified)。第二遍(缓存)是带有偏移量的 ISO-8601(来自 Redis 和 DateTimeKind.Local)。
有什么方法可以强制 ServiceStack JSON 序列化程序始终将日期解释为给定的 DateTimeKind?(我知道有一个“JsConfig.AppendUtcOffset”属性,但无论是真还是假,这些值对我来说永远不会改变?)
或者在我输入的 RedisClient 的反序列化过程中的某个地方使 DateTimeKind 成为本地的?
我可以手动更改我的 POCO 以强制执行 DateTimeKind - 这很有效 - 但我希望有一些不太容易出错的东西。