NServiceBus工作单元-获取调用哪个处理程序?

NServiceBus工作单元-获取调用哪个处理程序?,nservicebus,nservicebus3,Nservicebus,Nservicebus3,我正在尝试为NServiceBus编写一个工作单元,它将在每个消息处理程序之前和之后调用,以测量该处理程序运行并将其写入数据库所需的时间 我能够成功地编写工作单元,但是在Begin()方法实现中,我如何判断调用了哪个处理程序?您可以使用它来获取此类信息。有关更多信息,请参阅和。另一个渠道可能是。我会研究decorator模式,并通过依赖注入来处理这个问题 范例 您可以为IHandleMessages接口创建一个装饰器,并配置所有消息处理程序,以将代理返回到真正的消息处理程序,从而添加所需的检测

我正在尝试为NServiceBus编写一个工作单元,它将在每个消息处理程序之前和之后调用,以测量该处理程序运行并将其写入数据库所需的时间


我能够成功地编写工作单元,但是在Begin()方法实现中,我如何判断调用了哪个处理程序?

您可以使用它来获取此类信息。有关更多信息,请参阅和。另一个渠道可能是。

我会研究decorator模式,并通过依赖注入来处理这个问题

范例


您可以为IHandleMessages接口创建一个装饰器,并配置所有消息处理程序,以将代理返回到真正的消息处理程序,从而添加所需的检测逻辑。

您的工作单元通常应独立于处理程序。你为什么需要这些信息?此外,一条消息可能会调用多个处理程序,那么在这种情况下您会怎么做?我想做的是查看为一条消息调用哪个处理程序,并测量处理该消息所需的时间。我想将s秒表设置为开始,并在结束时停止,如果经过的时间大于X,则向我的记录器记录一条消息。这可能吗?我不确定这是否是个好主意。在尝试插入代码时,您将减慢消息的处理速度。另外,为什么您需要处理程序级别的检测而不是消息级别的性能度量?这将提供整个消息的信息(如果有多个处理程序处理该消息,则是所有处理程序的总和,加上基础结构时间)。