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
Ich habe eine Implementierung erstellt, die eine Implementierung des IDataContractSurrogate verwendet, um Ihre DTOs mit DTOs, die Sie besitzen, zu serialisieren.
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%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%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%Tags und Links c# datetime datacontractserializer string-formatting