Наша настройка примерно следующая. У нас есть базовый класс событий для заказа товара:
Код: Выделить всё
public class ProductOrdered : IEvent {
public int OrderId { get; set; }
}
Тогда у нас есть два типа подписчиков:
- Подписчики, которые просто заинтересованы в событии SomeConcreteProductOrdered и, таким образом, реализуют IHandleMessages.
- Подписчики которым не нужно знать всю специфику различных групп продуктов, а просто интересоваться любым ProductOrdered. Они будут реализовывать IHandleMessages
.
Код: Выделить всё
topology.SubscribeTo
("SomeConcreteProductOrdered");
topology.SubscribeTo("AnotherConcreteProductOrdered");
Итак, нам остается задаться вопросом, есть ли другой способ настроить это так, чтобы нам не приходилось перечислять все конкретные реализации этого базового класса в потребляющих конечных точках?
Мы думали о том, чтобы конечные точки публикации публиковали сообщение как на Тема SomeConcreteProductOrdered и тема ProductOrdered, чтобы разные потребители могли просто прослушивать темы в соответствии со своими реализациями IHandleMessages.
Альтернативой могло бы быть создание подписки из темы SomeConcreteProductOrdered на тему ProductOrdered (по сути, перестроение дерева наследования в темах и подписках), но нам было интересно, стоит ли можно использовать установщики конечных точек для автоматического предоставления этих ресурсов.
Подробнее здесь: https://stackoverflow.com/questions/798 ... sion-6-how
Мобильная версия