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