@tison

Как сделать интерфейс обработчика команд?

В моем коде есть 2 типа команд:
1. Возвращающие результат
2. Не возвращающие результат (Unit - тип "пустышка")
public interface ICommand : ICommand<Unit>{}
public interface ICommand<TResult>{}


На данный момент обработчики этих команд выглядят следующим образом:

public ICommandHandler<in TCommand> where TCommand : class, ICommand {
    Task Handle(TCommand command, CancellationToken cancellationToken = default(CancellationToken));
}

public ICommandHandler<in TCommand, TResult> where TCommand : class, ICommand<TResult> {
    Task<TResult> Handle(TCommand command, CancellationToken cancellationToken = default(CancellationToken));
}


Мне бы хотелось сделать так, чтобы эти обработчики были частью одного типа, чтобы можно было писать декораторы поверх всех типов команд без дублирования кода.
Как это можно сделать?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы