Rebus - 在处理消息之前执行操作
Rebus - Execute action before message is handled
在 Rebus 上有没有办法在调用 IHandleMessages.Handle 之前执行一个动作?
特别是我想为 log4net 设置我的日志的相关 ID,但我很难做到这一点。
我有一个 activity 模式转换器来从
获取 Guid
System.Diagnostics.Trace.CorrelationManager.ActivityId = Guid.NewGuid()
但我希望能够在激活每个句柄之前进行设置。
我使用 Autofac 作为 Rebus
的容器
实现此目的的一种简单方便的方法是包含 Rebus.Events package,它允许设置一个事件委托,以便在像这样处理每条消息之前调用它:
Configure.With(...)
.(...)
.Events(e =>
{
e.BeforeMessageHandled += (bus, headers, message, context, args) =>
{
// do what you want in here :)
};
});
在 Rebus 上有没有办法在调用 IHandleMessages.Handle 之前执行一个动作?
特别是我想为 log4net 设置我的日志的相关 ID,但我很难做到这一点。
我有一个 activity 模式转换器来从
获取 GuidSystem.Diagnostics.Trace.CorrelationManager.ActivityId = Guid.NewGuid()
但我希望能够在激活每个句柄之前进行设置。 我使用 Autofac 作为 Rebus
的容器实现此目的的一种简单方便的方法是包含 Rebus.Events package,它允许设置一个事件委托,以便在像这样处理每条消息之前调用它:
Configure.With(...)
.(...)
.Events(e =>
{
e.BeforeMessageHandled += (bus, headers, message, context, args) =>
{
// do what you want in here :)
};
});