Задать вопрос
@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));
}


Мне бы хотелось сделать так, чтобы эти обработчики были частью одного типа, чтобы можно было писать декораторы поверх всех типов команд без дублирования кода.
Как это можно сделать?
  • Вопрос задан
  • 103 просмотра
Подписаться 2 Средний 2 комментария
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

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