Desserialize json com campos conhecidos e desconhecidos

Dado o seguinte resultado do json: O resultado padrão do json possui um conjunto conhecido de campos:

{
    "id": "7908",
    "name": "product name"
}

Mas pode ser estendido com campos adicionais (neste exemplo_unknown_field_name_1 e_unknown_field_name_2) dos quais os nomes não são conhecidos ao solicitar o resultado.

{
    "id": "7908",
    "name": "product name",
    "_unknown_field_name_1": "some value",
    "_unknown_field_name_2": "some value"
}

Eu gostaria que o resultado json fosse serializado e desserializado para e de uma classe com propriedades para os campos conhecidos e mapeasse os campos desconhecidos (para o qual não há propriedades) para uma propriedade (ou várias propriedades) como um dicionário para que eles pudessem ser acessado e modificado.

public class Product
{
    public string id { get; set; }
    public string name { get; set; }
    public Dictionary<string, string> fields { get; set; }
}

Eu acho que eu preciso de uma maneira de se conectar a um serializador json e fazer o mapeamento para os membros ausentes (tanto para serializar e desserializar). Eu tenho visto várias possibilidades:

json.net e resolvedores de contratos personalizados (não consigo descobrir como fazer isso)serializador de datacontrato (só pode substituir o onserializado, o da serialização)serializar para dinâmico e fazer mapeamento personalizado (isso pode funcionar, mas parece muito trabalho)deixe o produto herdar de DynamicObject (serializadores funcionam com reflexão e não invocam os métodos trygetmember e trysetmember)

Estou usando o restsharp, mas qualquer serializador pode ser conectado.

Ah, e eu não posso mudar o resultado json, eisto ouisto também não me ajudou.

Atualizar: Isso parece mais com isso:http://geekswithblogs.net/DavidHoerster/archive/2011/07/26/json.net-custom-convertersndasha-quick-tour.aspx

questionAnswers(5)

yourAnswerToTheQuestion