Desserializando com Json.NET: Requerendo que uma propriedade / chave esteja presente

Ao usarJson.NET para desserializar uma string JSON em um objeto, como eu preciso que uma chave / propriedade esteja presente no JSON stirng, mas permita valores NULL?

Por exemplo:

Vamos dizer que eu tenho uma classe / objeto ...

[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}
}

No exemplo acima, o VIN e a cor são necessários e uma exceção seria lançada se um deles estivesse faltando na sequência JSON. Mas vamos dizer que o fato de a propriedade Description ter ou não um valor após ser desserializado é opcional. Em outras palavras, NULL é um valor válido. Existem duas maneiras de fazer isso acontecer na string JSON:

1)

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

ou 2)

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

O problema é que eu não quero assumir que o valor da descrição deve ser NULL apenas porque o par de chave / valor para o foi deixado de fora da seqüência JSON. Eu quero que o remetente do JSON seja explícito sobre como defini-lo como NULL. Se o cenário 2 acontecer, quero detectá-lo e responder com uma mensagem de erro. Então, como eu exijo que o par chave / valor esteja presente, mas aceite NULL como um valor?

Se isso ajuda, estou tentando resolver este problema dentro do contexto de umAPI da Web do ASP.NET projeto.

questionAnswers(3)

yourAnswerToTheQuestion