Tôi có một POCO như thế này:ServiceStack - Có cách nào để buộc tất cả các ngày được tuần tự hóa sử dụng một DateTimeKind cụ thể không?
public class BlogEntry
{
public string Title { get; set; }
public DateTime Date { get; set; }
}
Phần lớn thời gian nó đang được ngậm nước từ Entity Framework, nhưng nó có thể và sẽ được sử dụng bên ngoài của Entity Framework.
DateTimeKind cho ngày từ EF không xác định, từ những gì tôi đọc là bình thường.
Khi tôi cache POCO này trong Redis (sử dụng ServiceStack Redis client), nó trở lại với DateTimeKind của Local.
Vì vậy, có một jitter với các đối tượng trả về. Pass đầu tiên (uncached) có ISO-8061 không có offset (DateTimeKind.Unspecified). Pass thứ hai (cache) là ISO-8061 với một offset (từ Redis với DateTimeKind.Local).
Bất kỳ cách nào để buộc trình serializer ServiceStack JSON luôn diễn giải ngày tháng như một DateTimeKind đã cho? (Tôi biết có một thuộc tính "JsConfig.AppendUtcOffset", nhưng cho dù đó là đúng hay sai, các giá trị không bao giờ thay đổi đối với tôi?)
Hoặc một nơi nào đó trong quá trình deserialization từ RedisClient đã nhập của tôi để tạo địa chỉ DateTimeKind?
Tôi có thể thay đổi POCO của mình theo cách thủ công để thực thi DateTimeKind - và điều đó có hiệu quả - nhưng tôi đã hy vọng sẽ có ít lỗi hơn.
Bất kỳ ý tưởng nào về lý do tại sao đại biểu 'JsConfig .SerializeFn' không được gọi trên thiết lập của tôi? –
ygormutti
Bạn có đang gọi tuần tự hóa bằng DateTime không có giá trị không? –
Đối với những người như tôi, những người không tìm thấy giải pháp ygormutti ngay lập tức ... tất cả những gì bạn cần làm là: 'JsConfig .SerializeFn' –