Я хотел бы получать все сообщения, которые реализуют указанный c интерфейс:
public interface IBusItem
{
Guid BusItemId { get; }
DateTime Timestamp { get; }
}
Например, у меня есть такое сообщение:
public class SomeMessage : IBusItem
{
public Guid BusItemId { get; set; } = Guid.NewGuid();
public DateTime Timestamp { get; set; } = DateTime.UtcNow;
public string Message { get; set; }
}
У меня есть обработчик для SomeMessage и еще один для IBusItem. Если в приемнике я делаю:
bus.Subscribe<SomeMessage>();
, то вызываются ОБА обработчики.
Но если я хочу подписаться только на IBusItem:
bus.Subscribe<IBusItem>();
, тогда никакой обработчик называется
Можно ли подписаться на базовый интерфейс / класс с помощью Rebus?