这是取自此处的 IEventProcessor 实现的一部分:
public class SimpleEventProcessor : IEventProcessor
{
public async Task ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> events)
{
foreach (EventData eventData in events)
{
}
}
}
将新事件添加到 EventHub 时,会调用 ProcessEventsAsync 方法,并且可以使用 foreach 循环来处理这些事件。我现在想使用例如此处讨论的 ObserverRegistry 将观察者添加到 SimpleEventProcessor 。建议的 ObserverRegistry 如下所示:
public class ObserverRegistry : IObserverRegistry<IProjectionWriterFactory>
{
IEnumerable<object> GetObservers(IProjectionWriterFactory factory)
{
yield return new LoanApplicationObserver();
yield return new OfferObserver();
// more observers...
}
}
不幸的是,缺少一些东西。如何使用 SimpleEventProcessor 注册多个观察者,以便将事件从 ProcessEventsAsync 传递给所有观察者并最终传递给它们的 When 方法?