我正在尝试为 NServiceBus 编写一个工作单元,它将在每个消息处理程序之前和之后调用,以测量该处理程序运行并将其写入数据库所需的时间。
我能够成功编写工作单元,但是在 Begin() 方法实现中,我如何知道正在调用哪个处理程序?
我正在尝试为 NServiceBus 编写一个工作单元,它将在每个消息处理程序之前和之后调用,以测量该处理程序运行并将其写入数据库所需的时间。
我能够成功编写工作单元,但是在 Begin() 方法实现中,我如何知道正在调用哪个处理程序?
您可以使用ServiceInsight获取此类信息。有关详细信息,请参阅有关 ServiceControl和ServiceInsight的文档。另一个通道可能是NServiceBus.Performance Counters。
我会研究装饰器模式并通过依赖注入来处理这个问题
示例 https://code.google.com/p/autofac/wiki/AdaptersAndDecorators
您可以为 IHandleMessages 接口创建一个装饰器并配置所有消息处理程序以将代理返回给添加所需检测逻辑的真实消息处理程序。