在这里查看演示 CQRS 代码,命令和事件处理程序分别连接如下:
public interface CommandHandler<in T>
{
void Handle(T command);
}
public interface EventHandler<in T>
{
void Handle(T @event);
}
bus = BusSetup.StartWith<Conservative>()
.Apply<FlexibleSubscribeAdapter>(a =>
{
a.ByInterface(typeof(IHandleEvent<>));
a.ByInterface(typeof(IHandleCommand<>));
})
.Construct();
我正在使用一个与 membus 挂钩的 IoC 容器,它通过IEnumerable<object> GetAllInstances(Type desiredType)
使用我的容器实现接口来实现梦想,但是与使用这种注册方法的演示不同,我无法将接口拆分为单独的命令和事件:
this.Bus = BusSetup.StartWith<Conservative>()
.Apply <IoCSupport>(c =>
{
c
.SetAdapter(SimpleInjectorWiring.Instance)
.SetHandlerInterface(typeof(CommandHandler<>))
/*.SetHandlerInterface(typeof(EventHandler<>))*/;
// only CommandHandler or EventHandler can be used - not both
})
.Construct();
任何人都可以让我知道是否有任何方法可以解决这个问题,以便我们可以注册任意数量的类型?