Ошибка при имплементации Generic интерфейса в C#. Как решить?

Имеется следующий код:
public interface IRequest<out TResponse>{}

public interface IPagedRequest<out TResponse>: IRequest<IPagedList<TResponse>> { 
    int Page { get; set; } 
    int PageSize { get; set; }
}

public interface IRequestHandler<in TRequest, TResponse> where TRequest : class, IRequest<TResponse> {
    Task<TResponse> HandleAsync(TRequest request, CancellationToken cancellationToken = default(CancellationToken));
}


Необходимо добавить декоратор для обработки запросов с пагинацией. Я делаю следующее:
public class PagedRequestHandler<TRequest, TResponse> : IRequestHandler<TRequest, TResponse> where TRequest : class, IPagedRequest<TResponse> {
    // ...
}


На что компилятор отвечает следующей ошибкой: "The type TRequest must be convertable to IRequest in order to use it as parameter TRequest in the generic interface IRequestHandler".
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы