Ich habe eine POCO wie folgt aus:ServiceStack - Gibt es eine Möglichkeit, alle serialisierten Daten zu einem bestimmten DateTimeKind zu zwingen?
public class BlogEntry
{
public string Title { get; set; }
public DateTime Date { get; set; }
}
Die meiste Zeit von Entity Framework hydratisiert es ist, aber es kann und wird außerhalb des Entity Framework verwendet werden.
Das DateTimeKind für das Datum aus EF ist nicht angegeben, was von dem, was ich lese, ist normal.
Wenn ich dieses POCO in Redis (mit dem ServiceStack Redis Client) zwischenspeichern, kommt es mit einem DateTimeKind von Local zurück.
Es gibt also einen Jitter mit den zurückgegebenen Objekten. Der erste Durchlauf (nicht zwischengespeichert) hat ISO-8061 ohne Offset (DateTimeKind.Unspecified). Der zweite Durchlauf (zwischengespeichert) ist ISO-8061 mit einem Offset (von Redis mit DateTimeKind.Local).
Gibt es eine Möglichkeit, den ServiceStack JSON-Serializer dazu zu zwingen, Daten immer als gegebenes DateTimeKind zu interpretieren? (Ich weiß, es gibt eine "JsConfig.AppendUtcOffset" -Eigenschaft, aber ob es wahr oder falsch ist, ändern sich die Werte für mich nie?)
Oder irgendwo in der Deserialisierung von meinem RedisClient eingegeben, um das DateTimeKind lokal zu machen?
Ich kann meine POCOs manuell ändern, um das DateTimeKind zu erzwingen - und das funktioniert - aber ich hoffte auf etwas weniger fehleranfällig.
Irgendwelche Ideen, warum der 'JsConfig .SerializeFn' Delegat nicht auf meinem Setup aufgerufen wird? –
ygormutti
Rufen Sie Serialisierung mit einer Nullable DateTime auf? –
Für diejenigen wie mich, die die ygormutti Lösung nicht sofort gefunden haben ... alles, was Sie nur tun müssen, ist: 'JsConfig .SerializeFn' –