我的一些NServiceBus命令需要跟踪发出命令的人员和时间。我不确定推荐的实现方法:
我应该创建基类MessageBase
,添加public Dictionary<string, string> Headers;
并实施IMutateOutgoingMessages
吗?
是否应该添加到MessageContext中?如果是这样,我如何确保总线在发送每条消息(需要标题)之前添加它?
它已经完成了,我只是不知道如何访问它? (看起来用户在原始MSMQ消息中......)
答案 0 :(得分:4)
NServiceBus已经为您提供了使用“NServiceBus.TimeSent”标头发送邮件的时间。
使用内置的NServiceBus头字典并跳过MessageBase
最好在传出消息mutator中添加用户ID。只需从例如HttpContext中获取ID并将其添加为标题。
http://support.nservicebus.com/customer/portal/articles/860492
获取时间(在你的处理程序/传奇中):
Bus.CurrentMessageContext.TimeSent