在结构图中,我有以下处理域事件的行:
public void Dispatch<TEvent>(TEvent eventToDispatch) where TEvent : IDomainEvent { foreach (var handler in ObjectFactory.GetAllInstances<IDomainEventHandler<TEvent>>()) { if (handler.IsActive) handler.Handle(eventToDispatch); } }
我正在这样的结构映射注册表中注册这些:
x.AddAllTypesOf(typeof(IDomainEventHandler<>));
上面的第一个块抛出一个未知的错误-结构图代码400。有人知道如何从strcuture映射容器中获取特定类型的泛型类吗?
蒂亚
安得烈
我要检查的第一件事是以下输出:
Console.WriteLine(ObjectFactory.WhatDoIHave());
确保按预期注册事件处理程序。
如果类是按预期注册的,那么我认为这就是您希望如何解析IDomainEventHandler的:
foreach (var handler in ObjectFactory.ForObject(eventToDispatch) .GetAllClosedTypesOf(typeof(IDomainEventHandler<>)) .As<IDomainEventHandler<TEvent>>())