Serialisierung der UTC-Zeit c #

9

Ich habe ein DateTime-Datamember in einem Datenvertrag. Standardmäßig serialisiert der DataContractSerializer die UTC-Zeit in yyyy-MM-ddTHH:mm:ss.fffffffZ format. Ich brauche es in yyyy-MM-ddTHH:mm:ss.000Z format, habe aber keine Kontrolle über die Datenverträge. Also gibt es etwas, was ich mit dem DataContractSerializer tun kann, das mir die UTC-Zeit in dem Format geben würde, das ich möchte. Danke

    
hexterminator 08.12.2015, 23:02
quelle

1 Antwort

3

Ich habe eine Implementierung erstellt, die eine Implementierung des IDataContractSurrogate verwendet, um Ihre DTOs mit DTOs, die Sie besitzen, zu serialisieren.

DTOs

Sie haben keine DTOs bereitgestellt, also habe ich eine erstellt, die Ihr ursprüngliches DTO ist (die Sie nicht ändern können) und ein Ersatz-DTO, das uns gehört. Sie haben die gleiche öffentliche Signatur, außer dass ihre DateTime-Eigenschaften in String-Typen geändert werden.

%Vor%

IDataContractSurrogate

Das IDataContractSurrogate stellt die Methoden, die erforderlich sind, um einen Typ während der Serialisierung und Deserialisierung durch einen anderen Typ zu ersetzen.

Ich habe hier einfache Überlegungen angestellt. Wenn Sie eine bessere Leistung benötigen, schauen Sie sich den generierten Code zwischen den Typen an oder generieren Sie sogar die Zieltypen.

%Vor%

Verwendung mit dem Serializer

Hier erstellen wir den DataContractSerializer und stellen ihm ein instanziiertes DTO zur Verfügung und nach der Serialisierung kehren wir den Prozess um, um zu prüfen, ob das Ergebnis das gleiche ist.

%Vor%     
rene 09.12.2015, 22:26
quelle