2009-08-13 175 views
3

我有一个MSMQ接收来自各种来源的XML格式的消息。我有一个WCF端点(使用MsmqIntegrationBinding),我想要接收这些消息。我定义如下:使用WCF从MSMQ队列接收任何XML消息?

[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的字符串缓冲区,如何使用System.Messaging.MessageQueue.Send将它放到MSMQ中,而不会让它包含在其他xml中?

回答

1

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

如果可以帮助它,请不要将XML作为字符串操作。始终使用许多XML API之一。

+0

谢谢约翰,这似乎已经得到它。 我不想操纵XML,甚至不想知道架构,我只需要将它从队列中拉出来并发送出去,因此为什么我认为我可以将它作为一个字符串并避免反序列化它。 虽然这应该是工作。再次感谢! – 2009-08-13 14:26:20