如何在C#中将字符串转换为SOAPMessage

时间:2011-05-12 15:10:14

标签: c# .net wcf soap udpclient

我正在编写应用程序,在要求中我必须与一个通过UDP发送SOAP消息的设备进行通信。我正在使用.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 :(得分:0)

我建议使用WCF为您生成客户端并实现您自己的通道来处理来自客户端的通信。你应该能够连接你的代码。当然,大多数套接字通信已经由WCF完成,因此在使用WCF时,您首先不需要代码。

请参阅:

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

答案 1 :(得分:0)

这个MSDN article shows how to build a UDP transport based binding适用于您的客户端的WCF。假设您可以访问服务的WSDL,那么构建和配置此UDP绑定是值得的,因为它将为您处理所有序列化/反序列化。文章代码作为WCF/WF samples for .NET 4的一部分提供,因此您只需下载并安装示例即可开始使用。

如果您无法访问WSDL,那么至少可以查看示例代码以了解如何处理UdpClient内容。