Добрый день,
Написал класс-обёртку для http вызово с динамичным типом:
public async Task<T> PostPandaSpecified<T>(string pandaParams, string method)
{
// вырезал http вызов
var content = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
if (typeof(T) == typeof(string))
{
return content; // ошибка
}
else
{
var res = JsonConvert.DeserializeObject<T>(content);
return res;
}
}
throw new HttpRequestException(content);
}
Соответственно, если я вызываю этот метод и передаю в возвращаемый тип какой-либо класс, то этот класс подставляется в json десериализацию и всё отрабатывает
var res = await PostPandaSpecified<SomeResultClass>(dataToSend, "url");
Но если же мне приходит в ответ не json, а простая строка, я не должен её передавать в json сериализатор, он от этого ломается, мне просто нужно вернуть контент.
var res = await PostPandaSpecified<string>(dataToSend, "url");
// Ошибка в этом блоке
if (typeof(T) == typeof(string))
{
return content; // Cannot implicity convert type 'string' to 'T'
}
(явные преобразования так же не работают)
Как тут правильно написать?