Custom DateTime Serialisierung / Deserialisierung mit DataContractJsonSerializer

So ändern Sie den Standard-JSONDateTime Serialisierung / Deserialisierung in ein benutzerdefiniertes Format mitDataContractJsonSerializer für alleDateTime Eigenschaften im Objektgraphen?

Die Json.Net-Bibliothek befasst sich damit, aber ich kann das in diesem Projekt nicht verwenden.

Ich habe es versuchtIDataContractSurrogate aber ich kann nicht auf den Wert zugreifen -> String-Konvertierung für DateTimes.

Das Modell und der erwartete JSON sind:

[DataContract]
public class Client
{
    [DataMember(Name = "id")]
    public int Id {get; set; }
    [DataMember(Name = "name")]
    public string Name {get; set; }
    [DataMember(Name = "contacts")]
    public IList<Contact> Contacts {get; set; }
    [DataMember(Name = "created")]
    public DateTime Created {get; set; }
    [DataMember(Name = "changed")]
    public DateTime Changed {get; set; }
}

[DataContract]
public class Contact
{
    [DataMember(Name = "name")]
    public string Name {get; set; }
    [DataMember(Name = "created")]
    public DateTime Created {get; set; }
}
{
    "id": 123,
    "name": "Client Name",
    "contacts": [
        {
            "name": "Contact Name",
            "created": "2014-01-25 02:12:43"
        }
    ],
    "created": "2014-01-25 01:11:23"
    "changed": "2014-01-25 03:22:41"
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage