2009-08-13 2 views
3

У меня есть MSMQ, который получает сообщения формата XML из разных источников. У меня есть конечная точка WCF (с использованием MsmqIntegrationBinding), которую я хочу получить. Я определил следующее:Использовать WCF для получения любого XML-сообщения из очереди MSMQ?

[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-сообщения, получая его в String, было бы достаточно. Как определить конечную точку, которая получает XML-сообщения с любыми узлами, которые поступают в очередь независимо от схемы, используемой в сообщении?

Кроме того, учитывая буфер String, содержащий XML-сообщение, как его можно поместить на MSMQ с помощью System.Messaging.MessageQueue.Send без его обертывания в дополнительный xml?

ответ

1

Я не использовал интеграцию MSMQ, но попробую MsmqMessage<XmlElement>.

Не манипулируйте XML как строку, если вы можете ему помочь. Всегда используйте один из многих XML-интерфейсов.

+0

Спасибо, Джон, похоже, получил его. Я не хочу манипулировать XML, даже не хочу знать схему, мне просто нужно вытащить ее из очереди и отправить ее, поэтому я подумал, что могу получить ее как строку и избежать десериализации Это. Это должно быть выполнено. Еще раз спасибо! –

Смежные вопросы