我检查了 Spring4d 库中有关事件驱动架构的示例。
据我了解,当一个事件发布时,ServiceLocator将实例化所有实现该IEventHandler<TEventClass>接口的类并要求这些处理程序处理该事件。
但是,是否有推荐的方法只要求已经实例化的服务来处理事件。
假设我有任意数量的Controllers实例化。其中一些可能是多次实例化的同一个类。其中一些可能是独一无二的。
我希望这些实例化Controllers来监听TUserAdded事件。这些Controllers实现了IEventHandler<TUserAdded>接口。我不希望未实例化Controllers的人收听该事件。
在某种程度上,我想获取实现该IEventHandler<TUserAdded>事件的所有实例的列表。
此外,在理想情况下,如果 aController注册为Singleton
container.RegisterType<TMySingletonController>.AsSingleton;
我想实例化TMySingletonController如果它还没有实例化,那么,让它处理事件。
Spring4d 中是否有内置方法来获取给定接口的所有实例的列表?