在调用IHandleMessages.Handle之前,Rebus是否有办法执行某个操作?
特别是我想为log4net设置我的日志的相关ID,而我真的很难让这个工作起作用。
我有一个活动模式转换器来从
获取Guid System.Diagnostics.Trace.CorrelationManager.ActivityId = Guid.NewGuid()
但是我希望能够在激活每个句柄之前设置它。 我使用Autofac作为Rebus的容器
答案 0 :(得分:1)
实现这一目标的一种简单方便的方法是包含Rebus.Events package,它允许在每个消息处理之前设置一个事件委托,如下所示:
Configure.With(...)
.(...)
.Events(e =>
{
e.BeforeMessageHandled += (bus, headers, message, context, args) =>
{
// do what you want in here :)
};
});