如果我希望处理每条消息的实例,我需要与 NServiceBus 消息处理程序一起使用所需的 IOC 实例生命周期。
PerRequest 不起作用,因为考虑到我拥有的众多构造函数依赖和依赖图,当我每个 Handle(MessageX msg) 调用只需要一个时,它给了我很多实例。我不能或不想将它直接注入消息处理程序,因为它需要在对象图的下方。例如注入 IPersonService,依赖于 IPersonRepository,它们可以是每个请求(默认),但 IPersonDBContext 需要是每个消息调用。
PerThread 无法工作,因为 NServiceBus 一遍又一遍地使用相同的工作线程。
Singleton、HttpContext等..显然不适用。
有人用 StructureMap 或 Castle 遇到过这个吗?