private class Result
{
public bool IsSuccess { get; set; }
public string Message { get; set; }
}
private class Result<T> : Result
{
public T Data { get; set; }
}
Есть Generic метод T MakeRequest<T> where T : Result
В одном случае он вызывается как
MakeRequest<Result>, в другом MakeRequest<Result<ExtraData>>
В случае если запрос не успешен, то там Generic возвращает
return (T) new Result
Соответственно в случае, когда ожидался Result<ExtraData>, то в этом месте получаем Invalid Cast.
Подскажите, как решить эту проблему?
Какую?
У меня сейчас return (T) new Result { IsSuccess = false, Message = "Unable to process request" }; И это падает от инвалидкаста. Мне соответственно нужно в этом дженерике или вернуть объект типа который был запрошен (но как его понять?) или разрулить инвалидкаст что бы и обычный Result смогло вернуть. Сейчас еще попробую сейф каст return new Result { IsSuccess = false, Message = "Unable to process request" } as T; Правда хз поможет ли :)
Так ты Result пытаешься кастить к Result<T>
Обсуждают сегодня