Convertir las propiedades / fichas de un objeto JSON.NET en claves de diccionario

Estoy usando JSON.NET para analizar una respuesta JSON desde el lado del servidor de openexhangerates.org usando .NET. La respuesta contiene un objeto anidado ("tasas") que tiene una larga lista de propiedades numéricas:

    {
    "disclaimer": "Exchange rates provided for informational purposes only, with no guarantee whatsoever of accuracy, validity, availability, or fitness for any purpose; use at your own risk. Other than that, have fun! Usage subject to acceptance of terms: http://openexchangerates.org/terms/",
    "license": "Data sourced from various providers with public-facing APIs; copyright may apply; not for resale; no warranties given. Usage subject to acceptance of license agreement: http://openexchangerates.org/license/",
        "timestamp": 1357268408,
        "base": "USD",
        "rates": {
            "AED": 3.673033,
            "AFN": 51.5663,
            "ALL": 106.813749,
            "AMD": 403.579996,
            etc...
        }
    }

Los nombres de las propiedades corresponden al tipo de moneda (por ejemplo, "USD"). Debo asumir que la lista de propiedades puede cambiar con el tiempo, por lo que quiero convertir el objeto en un Diccionario en lugar de un objeto C # correspondiente.

Así que en lugar de deserializar el objeto JSON en algo como esto:

class Rates
{
public decimal AED; // United Arab Emirates Dirham
public decimal AFN; // Afghan Afghani
public decimal ALL; // Albanian Lek
public decimal AMD; // Armenian Dram
// etc...
}

Quiero terminar con esto:

Dictionary<string,decimal>() {{"AED",0.2828},{"AFN",0.3373},{"ALL",2.2823},{"AMD",33.378} // etc...};

¿Cómo hago esto comenzando desde la cadena de respuesta o desde el objeto JObject producido al llamar a JObject.Parse (responseString)?

Respuestas a la pregunta(3)

Su respuesta a la pregunta