Динамическое возвращение сериализованных результатов RestSharp

61
7

Пытаясь сделать общий метод для вызова конечных точек REST с помощью RestSharp, единственная проблема, с которой я сталкиваюсь, возвращает содержимое как динамическое.

Response.Data имеет значение null и Response.Content всегда является строкой. Я хотел бы, чтобы возвращаемое значение было как минимум анонимным.

public T Call<T>(string url, Method method = Method.GET, ResponseType type = ResponseType.JSON, params Parameter[] parameters)
{
var request = new RestRequest(url, method);

switch (type)
{
case ResponseType.JSON:
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept", "application/json");
request.RequestFormat = DataFormat.Json;
break;
case ResponseType.XML:
request.AddHeader("Content-Type", "application/xml");
request.AddHeader("Accept", "application/xml");
request.RequestFormat = DataFormat.Xml;
break;
}

foreach (var parameter in parameters)
request.AddParameter(parameter);

var response = _client.Execute<dynamic>(request);

if (!string.IsNullOrEmpty(response.ErrorMessage) || response.ErrorException != null)
throw new System.Exception(response.ErrorMessage, response.ErrorException);

return response.Data;
}

спросил(а) 2021-01-28T00:54:14+03:00 1 месяц назад
1
Решение
85

Учитывая, что у вас есть тип T, вы не можете:

var response = _client.Execute<T>(request);

ответил(а) 2021-01-28T00:54:14+03:00 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема