Как преобразовать строку в SOAPMessage в C # - PullRequest
0 голосов
/ 12 мая 2011

Я пишу приложение, в котором по требованию я должен связаться с одним устройством, которое отправляет 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();
    }

Ответы [ 2 ]

0 голосов
/ 12 мая 2011

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

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

0 голосов
/ 12 мая 2011

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

см .:

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

...