Как писать принадлежащий код RawRabbit с помощью EasyNetQ
Код в RawRabbit:
public static Task WithCommandHandlerAsync<TCommand>(this IBusClient bus,
ICommandHandler<TCommand> handler) where TCommand : ICommand
=> bus.SubscribeAsync<TCommand>(msg => handler.HandleAsync(msg),
ctx => ctx.UseConsumerConfiguration(cfg =>
cfg.FromDeclaredQueue(q => q.WithName(GetQueueName<TCommand>()))));
Я пытаюсь принадлежать коду, но у меня есть ошибка (не полная реализация)
public static Task WithCommandHandlerAsync<TCommand>
(this IBus bus, ICommandHandler<TCommand> handler)
where TCommand : ICommand
=> bus.SubscribeAsync<TCommand>(GetSubscriberId<TCommand>(), handler.HandleAsync);
Ошибка:
Тип 'TCommand' должен быть ссылочным типом, чтобы использовать его в качестве параметра 'T' в универсальном типе или методе 'IBus.SubscribeAsync (string, Func)'