我想使用 NetMsmqBinding 设置 MSMQ 消息标签。我知道使用 MsmqIntegrationBinding 很容易,但我想继续使用 NetMsmqBinding (如果可能的话,甚至调用私有方法)
3 回答
我认为这是一个有趣的问题。不幸的是,从我所看到的一切来看,您似乎无法使用 NetMsmqBinding 访问传出 MSMQ 消息上的 Label 属性。
以下是我遇到的一些链接:
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/3389679b-a130-4e83-bb4c-1b522c216227/
http://blogs.msdn.com/skaufman/archive/2007/12/17/msmq-label-property-and-wcf.aspx
我找不到任何可以确切解释原因的东西,但推理是有道理的——NetMsmqBinding 没有公开任何特定于 System.Messaging 的东西,因此绑定本身可以轻松地换成另一个绑定,而无需更改任何代码。正如您所说,MsmqIntegrationBinding 与 System.Messaging 概念紧密耦合,因此您可以访问所有 System.Messaging 内容,但代价是与其他绑定的可互换性。如果设置标签很重要,最简单的方法可能是只使用 msmqIntegrationBinding。
George:没有答案,但我很想知道您打算如何将 MSMQ 标签与 NetMsmqBinding 一起使用。
我问的原因是 NetMsmqBinding 真的是为了支持发送和接收端点都是 WCF 应用程序的场景而创建的,所以此时您不妨将所需的任何带外数据粘贴在消息头中...
使用 OperationContext.Current.IncomingMessageProperties.Values