使用WCF从MSMQ队列接收任何XML消息?

3

我有一个 MSMQ,可以接收来自各个来源的 XML 格式消息。我想要使用 MsmqIntegrationBinding 的 WCF 端点来接收这些消息。我定义了以下内容:

[ServiceContract(Namespace = "http://TestApp.MSMQService", ProtectionLevel = ProtectionLevel.None)]
[ServiceKnownType(typeof(String))]
public interface IMsmqReceiverService
{
    [OperationContract(IsOneWay = true, Action = "*")]
    void SubmitQueueMessage(MsmqMessage<String> msg);
}

希望能够接收任何XML消息,但它只能接收格式化的消息:
<?xml version="1.0">
<string>message</string>

由于各种未知原因,我们不知道也不想知道XML消息的模式,将其转换为字符串即可。如何定义端点以接收XML消息并处理到达队列上的任何节点,而不管消息中使用的模式是什么?

此外,如果有一个包含消息XML的String缓冲区,如何使用System.Messaging.MessageQueue.Send将其放入MSMQ而不会被额外的XML包装?

1个回答

1

我没有使用过MSMQ集成,但可以尝试使用MsmqMessage<XmlElement>

如果可能的话,请不要将XML作为字符串进行处理。请始终使用众多的XML API之一。


谢谢John,看起来已经搞定了。我不想操作XML,甚至不想知道模式,我只需要从队列中拉出它并发送它,所以我认为我可以将其作为字符串获取并避免反序列化。这应该可以完成任务。再次感谢! - Nick Thomson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接