我目前正通过NServiceBus向MSMQ发送一个对象:
public void SendMessage(AvailInfo message)
{
var Bus = Configure.With()
.DefaultBuilder()
.Log4Net()
.UseTransport<Msmq>()
.XmlSerializer()
.UnicastBus()
.CreateBus()
.Start(() => Configure.Instance.ForInstallationOn<Windows>().Install());
bus.Send(message);
}
一切正常,但现在队列的使用者正在请求我们显式使用ActiveXMessageFormatter。
问题:在上面的代码段中发送消息时,如何/在何处设置此消息。
提前致谢!
答案 0 :(得分:2)
NServiceBus消息格式化程序应该被所有消息传递端点用于彼此通信。 NServiceBus内置了四个:XML(默认,与.NET XmlSerializer不同),JSON,BSON和Binary。
ActiveXMessageFormatter是一个System.Messaging类,与上面的格式化程序无关。
这几乎听起来像是你在尝试使用NServiceBus作为MSMQ的客户端API,而这并不是它的真实含义。您可以在技术上为NServiceBus实现自己的消息格式化程序,但我不建议在这种情况下使用它。
如果这是一次性情况,我会考虑通过此方案中的System.Messaging命名空间直接与MSMQ进行交互。使用事务性消息仍将与消息处理程序中存在的环境事务进行交互。