问题标签 [membus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Membus 和 Simple Injector - 通过接口自动连接命令处理程序
我在 Membus 中看到了 IoC 功能,我尝试将其连接到 Simple Injector
这个想法是我将自动注册我的所有类型RegisterManyForOpenGeneric(typeof<CommandHandler<>),typeof<CommandHandler<>).Assembly)
。
毫无疑问,通常有充分的理由,SimpleInjector 不允许多次注册 - 但是,我想这样做是为了让不同的处理程序实现命令处理的不同方面/问题。
当然,IEnumerable<object> IocAdapter.GetAllInstances(Type desiredType)
来自 membus 的接口需要一个集合,因此可以调用多个处理程序。
将 Membus 与 SimpleInjector IoC 结合的最佳方式是什么?
脚注
我已经看到了按照惯例连接menbus的其他方法:
但我真的很想坚持使用 IoC 容器来处理生命周期范围,并避免实例化命令处理程序并在需要它们之前手动连接它们。
cqrs - 带有 membus 和 ioc 容器的 SetHandlerInterface() 的多种类型
在这里查看演示 CQRS 代码,命令和事件处理程序分别连接如下:
我正在使用一个与 membus 挂钩的 IoC 容器,它通过IEnumerable<object> GetAllInstances(Type desiredType)
使用我的容器实现接口来实现梦想,但是与使用这种注册方法的演示不同,我无法将接口拆分为单独的命令和事件:
任何人都可以让我知道是否有任何方法可以解决这个问题,以便我们可以注册任意数量的类型?
c# - 生命周期范围由 IoC 容器处理的单元测试对象
我正在使用 Microsoft 单元测试并具有以下内容:
我正在使用一个处理对象生命周期范围的 IoC 容器(简单注入器)。Membus 将命令连接到命令处理程序,并通过 IoC 容器进行解析。
上面的代码运行和工作,命令处理程序将它们的局部变量设置为 true。
但是,由于 Simple Injector 处理生命周期范围,我不能向 Simple Injector 询问AccountCommandHandler
对象,因为它会返回一个CreateAccountCommandWasCalled
设置为 false 的新对象。
CreateAccountCommandWasCalled
作为单元测试的新手,除了设置为静态变量之外,还有什么更健壮的测试方法?