Wenn %code% kein muss ist, verwenden Sie Json.Net .
%Vor%Dies ist die Json-Zeichenfolge
%Vor%und zurückgegebene Typen sind %code% , %code% , %code% , %code% und %code%
Sie könnten DateTime.Now vor der Serialisierung und der Konvertierung in eine Zeichenfolge konvertieren wandle es nach der Deserialisierung zurück in DateTime .
Umwandlung in Zeichenfolge durch:
%Vor%Konvertierung zurück in DateTime nach der Deserialisierung:
%Vor%Also wäre der ganze Code wie folgt:
%Vor%Das scheint sehr merkwürdiges Verhalten zu sein, ich vermute, dass es von DateTime stammt, das kein Typ ist, der in JSON erkannt wird. Sie können jedoch Ihr eigenes IDataContractSurrogate rollen, um den Serialisierungs- / Deserialisierungsprozess zu ändern.
Um dies zu verwenden, modifizieren Sie Ihren Beispielcode, wenn Sie den Serializer dafür erstellen:
%Vor%Fügen Sie dann diese Klasse hinzu:
%Vor%In der .NET Framework-Version 4.5 hat die %code% einen Konstruktor, der ein %code% -Objekt akzeptiert, mit dem %code% :
gesetzt werden kann %Vor%Ich habe Probleme mit der %code% class zum Deserialisieren von DateTime-Instanzen, die in einem %code% enthalten sind. Ich kann DateTime scheinbar nicht wieder in den ursprünglichen Typ deserialisieren. Das %code% deserialisiert es immer in einen String-Typ mit dem Format %code% . Es wird serialisiert und deserialisiert, wenn ich es mit einem stark typisierten %code% durchführe, aber ich suche nach einer Möglichkeit, den Serializer zu veranlassen, DateTimes zu identifizieren und richtig zu deserialisieren, wenn er in einer einfachen Liste oder einem Array von %code% / p>
Beachten Sie, dass DateTimes der einzige Typ neben Primitiven und Strings sind, die diese Liste jemals enthält. Hier ist das Code-Snippet, mit dem ich das teste.
%Vor%