none
List<T> com RestSharp retorna NULL RRS feed

  • 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.

    quinta-feira, 14 de janeiro de 2016 14:52

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
    sexta-feira, 22 de janeiro de 2016 13:29

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
    sexta-feira, 22 de janeiro de 2016 13:29
  • Perfeito !

    Era isso mesmo.

    Muito obrigado pela ajuda e atenção !


    Não esqueça de marcar o post como útil caso tenha te ajudado.

    sexta-feira, 22 de janeiro de 2016 15:02