public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var jsonObject = JObject.Load(reader); var jobjTipo = jsonObject["tipo"]; int idTipo = jobjTipo["id"].Value <int>(); TipoDeTabelaDePreco tipo = TipoDeTabelaDePreco.Obtem(idTipo); var tabelaDePreco = serializer.Deserialize(jsonObject.CreateReader(), tipo.ConvertePara()); return(tabelaDePreco); }