Deserialisierung mit Json.NET: Es muss eine Eigenschaft / ein Schlüssel vorhanden sein

Beim BenutzenJson.NET Wie kann ich zum Deserialisieren einer JSON-Zeichenfolge in ein Objekt festlegen, dass ein Schlüssel / eine Eigenschaft im JSON-Speicher vorhanden sein muss, aber NULL-Werte zulassen?

Zum Beispiel:

Nehmen wir an, ich habe eine Klasse / ein Objekt ...

[DataContract]
public class Car
{
    [DataMember(IsRequired = true)]
    public string Vin {get; set;}

    [DataMember(IsRequired = true)]
    public string Color {get; set;}

    public string Description {get; ;set}
}

Im obigen Beispiel sind die VIN und die Farbe erforderlich, und es wird eine Ausnahme ausgelöst, wenn eine davon in der JSON-Zeichenfolge fehlt. Nehmen wir jedoch an, dass es optional ist, ob die Description-Eigenschaft nach der Deserialisierung einen Wert hat oder nicht. Mit anderen Worten ist NULL ein gültiger Wert. Dies kann auf zwei Arten in der JSON-Zeichenfolge geschehen:

1)

{
    "vin": "blahblahblah7",
    "color": "blue",
    "description":  null
}

oder 2)

{
    "vin": "blahblahblah7",
    "color": "blue"
}

Das Problem ist, dass ich nicht davon ausgehen möchte, dass der Wert Description NULL sein sollte, nur weil das Schlüssel / Wert-Paar für das in der JSON-Zeichenfolge weggelassen wurde. Ich möchte, dass der Absender des JSON explizit darüber informiert wird, wie er es auf NULL setzt. Wenn Szenario 2 eintreten sollte, möchte ich es erkennen und mit einer Fehlermeldung antworten. Wie muss das Schlüssel / Wert-Paar vorhanden sein, aber NULL als Wert akzeptieren?

Wenn es hilft, versuche ich, dieses Problem im Kontext eines zu lösenASP.NET-Web-API Projekt.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage