Я пытаюсь создать общий метод GET для моего веб-api с помощью RestSharp.Restsharp return IEnumerable типа T
public IEnumerable<T> GetData<T>(string url, DataFormat ReturnFormat)
{
RestRequest request = new RestRequest(url, Method.GET) { RequestFormat = ReturnFormat };
return _restClient.Execute<IEnumerable<T>>(request);
}
Но последняя строка имеет ошибку
Ошибка 2 «System.Collections.Generic.IEnumerable» должен быть не абстрактный тип с конструктором общественного порядка в без параметров, чтобы использовать его в качестве параметра «T» в родовом типе или методе «RestSharp.RestClient.Execute (RestSharp.IRestRequest)»
Я думаю, что вопрос является возвращаемым типом IEnumerable, но подумал, что было бы, если я workd помещен каким-то ограничение по типу возврата? Если да, то ?
Ok..i просто изменил код этого
public IEnumerable<T> GetData<T>(string url, DataFormat ReturnFormat)
{
RestRequest request = new RestRequest(url, Method.GET) { RequestFormat = ReturnFormat };
var a = _restClient.Execute<List<string>>(request);
return (IEnumerable<T>)a.Data;
}
Он компилирует. Не уверен, если это сработает ... но почему он сейчас счастлив?
Как вы ожидаете, что клиент укажет общий аргумент типа? Возможно, у вас должен быть другой параметр, указывающий имя типа, и просто введите тип возвращаемого значения 'IEnumerable'. –
Помог ли мой ответ? –