Deserializar Diccionario con JSON.NET

Estoy usando Newtonsoft.Json con la versión 4.0.8 y trato de usarlo con la API web. Así que quería deserializar JSON con

JsonConvert.DeserializeObject<AClass>(jsonString);

Esto funciona hasta que agregué un Diccionario como propiedad a esta clase y quise deserializarlo.

La cadena json está en la forma de

{ 
   "Date":null,
   "AString":"message",
   "Attributes":[
                   {"Key":"key1","Value":"value1"},      
                   {"Key":"key2","Value":"value2"}
                ],
    "Id":0,
    "Description":"...
}

Al deserializar excepción de tipoJsonSerializationException Ocurre con el mensaje: "No se puede deserializar la matriz JSON en el tipo 'System.Collections.Generic.Dictionary`2 [System.String, System.String]'."

¿Qué estoy haciendo mal aquí?

ACTUALIZACIÓN1: Al serializar con JSON.NET obtengo lo siguiente para el diccionario:

Attributes":{"key1":"value1","key2":"value2"}

Parece que WebApi deserializa el objeto de una manera diferente a como lo haría Json.Net. En el lado del servidor, uso la siguiente línea para la deserialización implícita:

return new HttpResponseMessage<AClass>(object);

ACTUALIZACIÓN2: Como solución alternativa, vine ahora al lado del servidor de línea siguiente.

return new HttpResponseMessage<string>(JsonConvert.SerializeObject(license).Base64Encode());

Lo convierto con el lado del servidor Json.Net y lo transfiero como una cadena codificada en base64. Así que Json.Net puede deserializar su propio formato.

Pero todavía no es lo que quiero, ¿hay alguna otra sugerencia?

Respuestas a la pregunta(4)

Su respuesta a la pregunta