Как преобразовать строку в SOAPMessage в С#

Я пишу приложение, в котором по требованию я должен общаться с одним устройством, которое отправляет сообщение SOAP через UDP. Я использую класс .Net UDPClient для связи с этим устройством. Я получаю ответ от этого в UDPClient, но я получаю это как массив Byte []. Как я могу преобразовать это в объект SoapMessage?

    public void ReceiveCallback(IAsyncResult ar)
    {
        UdpClient udpClient = (UdpClient)((UdpState)(ar.AsyncState)).udpClient;
        IPEndPoint ipEndpt = (IPEndPoint)((UdpState)(ar.AsyncState)).ipEndpt;

        Byte[] receiveBytes = udpClient.EndReceive(ar, ref ipEndpt);
        string receiveString = Encoding.ASCII.GetString(receiveBytes);
                   //Here receiveString  I want to convert to SoapMessage
        BeginReceive();
    }

person Sandeep    schedule 12.05.2011    source источник


Ответы (2)


Я бы порекомендовал использовать WCF для создания клиента для вас и реализовать собственный канал для обработки связи с клиентом и с ним. Вы должны быть в состоянии подключить свой код. Конечно, большая часть связи через сокеты уже реализована в WCF, поэтому при использовании WCF вам не нужен ваш код.

видеть:

http://msdn.microsoft.com/en-us/library/ms789050.aspx

person Polity    schedule 12.05.2011

В этой статье MSDN показано, как создать привязку на основе транспорта UDP для WCF, которая вы можете использовать для вашего клиента. Предполагая, что у вас есть доступ к WSDL для службы, стоит создать и настроить эту привязку UDP, поскольку она будет обрабатывать всю сериализацию/десериализацию за вас. Код статьи доступен как часть примеров WCF/WF для .NET 4, поэтому вы можете начать работу, просто загрузив и установив образцы.

Если у вас нет доступа к WSDL, вы, по крайней мере, можете взглянуть на пример кода, чтобы увидеть, как обрабатывать материал UdpClient.

person Sixto Saez    schedule 12.05.2011