Usuário com melhor resposta
List<T> com RestSharp retorna NULL

Pergunta
-
Salve pessoal...
Estou desenvolvendo uma Web API e estou tendo problemas com o retorno (Json via RestSharp) dos dados pois não estão sendo serializados (Data = null). Embora a propriedade "Content" do objeto tipo "Response" tenha uma cadeia Json válida.
Meu método...
[HttpGet] [Route("Todos")] public IEnumerable<TipoTarefa> Get() { if (!ModelState.IsValid) { return null; } else { using (IDataContextAsync context = new Context()) using (IUnitOfWorkAsync unitOfWork = new UnitOfWork(context, _repositoryProvider)) { var registros = unitOfWork.Repository<TipoTarefa>().Query().Select().ToList(); try { return registros; } catch (Exception exception) { return null; } } } }
Minha classe...
public class TipoTarefa { public Guid Id { get; set; } public String Nome { get; set; } public Int Frequencia { get; set; } }
Como estou tentando obter os dados...
static void Main(string[] args) { Console.WriteLine("Pressione um tecla para acessar a WebAPI"); Console.ReadKey(); RestClient restClient = new RestClient("http://localhost:8540/bworkapi"); restClient.AddHandler("text/plain",new JsonDeserializer()); restClient.AddHandler("TipoTarefa",new JsonDeserializer()); var request = new RestRequest("tipotarefa/todos/", Method.GET); request.RequestFormat = RestSharp.DataFormat.Json; request.JsonSerializer.ContentType = "application/json; charset=utf-8"; var response = restClient.Execute<List<TipoTarefa>>(request); List<TipoTarefa> teste = response.Data; if (teste != null) { foreach (TipoTarefa tipoTarefa in teste) { Console.WriteLine(tipoTarefa.Nome); } } Console.Write(response.ErrorMessage); Console.WriteLine("Concluído"); Console.ReadKey(); }
Json via Fiddler...
HTTP/1.1 200 OK Content-Length: 1021 Content-Type: application/json; charset=utf-8 Server: Microsoft-IIS/8.0 X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNccm9iZXJzb24uU09NQVNTRVlcU291cmNlXFdvcmtzcGFjZXNcQmVybmFyZGlub1xCV29ya1xCV29yay5TZXJ2aWNlXEJXb3JrYXBpXFRpcG9UYXJlZmFcVG9kb3M=?= X-Powered-By: ASP.NET Date: Thu, 14 Jan 2016 14:50:55 GMT [ { "nome": "Teste Alterado", "frequencia": 69, "id": "20000000-0000-0000-0000-000000000000" }, { "nome": "Diária", "frequencia": 0, "id": "845cc0ea-753c-4872-82be-17aa16b9483e" }, { "nome": "Mensal", "frequencia": 0, "id": "369d9f4f-847c-4c34-9fa3-7551c86a9868" }, { "nome": "Trimestral", "frequencia": 0, "id": "988c5b3e-8174-4a5a-838c-ed72be444e6d" } ]
Agradeço a atenção!
Grande abraço!
Não esqueça de marcar o post como útil caso tenha te ajudado.
Respostas
-
Tente assim:
na linha :
var response = restClient.Execute<List<TipoTarefa>>(request);
coloque assim:
var response = restClient.Execute<TipoTarefa>(request);
estou desconfiado que seria assim, mas, não tenho certeza! por favor teste!
Fulvio C
- Marcado como Resposta Roberson Naves sexta-feira, 22 de janeiro de 2016 15:01
Todas as Respostas
-
Tente assim:
na linha :
var response = restClient.Execute<List<TipoTarefa>>(request);
coloque assim:
var response = restClient.Execute<TipoTarefa>(request);
estou desconfiado que seria assim, mas, não tenho certeza! por favor teste!
Fulvio C
- Marcado como Resposta Roberson Naves sexta-feira, 22 de janeiro de 2016 15:01
-