我被要求开发一个层,该层将充当通用总线,而不直接引用 NServiceBus。到目前为止,由于对不显眼的消息的支持,这并不太难。除了现在,我被要求为 IHandleMessages 提供我们自己的定义,并找到一种在连接期间映射它的方法。所以我在想这样的事情:
public class MessageHandlerAdapter<T> : IHandleMessages<T>
{
IUnityContainer container;
public MessageHandlerAdapter(IUnityContainer container)
{
this.container = container;
}
#region IMessageHandler<T> Members
public void Handle(T message)
{
var handler = container.Resolve<IHandle<T>>();
handler.Handle(message);
}
#endregion
}
其中 IHandle 将是我们自己的定义(顺便说一下,它与 IHandleMessages 完全相同)。我希望反映 AppDomain 并找到所有实现 IHandle 的类并将它们注册到容器中,然后注册一个具有相同类型 T 的 MessageHandlerAdapter。
我的问题是我已经有将近 2 年没有使用 NServiceBus 了,而且我不记得在 NSB 管道中在哪里连接到这种功能。