C#webservice需要动态地将SOAP转换为REST

时间:2009-02-10 18:25:25

标签: c# xml rest soap

我正在尝试为我正在编写软件的测试系统编写翻译层。我使用LabVIEW作为测试系统,并使用RESTful Web服务。我已经实现了REST方法,它们正常运行。远程测试控制器和数据服务层等用C#和SQL编写,这些是我必须使用SOAP连接的项目。我有一个简单的Web服务客户端,由同事用C#编写的SOAP方面。我基本上需要获取C#程序收集的对象,然后构建一个小的XML,可以作为发布数据发送到REST URI。

我已经对C#课程进行了介绍,但是当我主要在LabVIEW中编写代码时,它是“基于你的基于文本的语言的C#”并没有帮助。我在很久以前接受过C语言和一些C ++的训练,但在课程中确实很挣扎,这是一个非常陡峭的学习曲线,并且从大约3个月前的课程开始就没有使用过C#。我想学习C#,并认为这将是一个简单的开始方式,但到目前为止我一直在努力。

确定一些代码:

[WebMethod]
[SoapHeader("RMSSvcHeader", Direction = SoapHeaderDirection.InOut)]
public ReturnStatus Initialise(string uri)
{
    ReturnStatus rs = new ReturnStatus();
    try
    {
        rs.Message = HttpPostXml(uri, @"C:\Inetpub\wwwroot\RMS\XMLMessages\Initialise.xml");
    }
    catch (Exception exc)
    {
        rs.Status = 1;
        rs.Message = exc.Message;
    }
    return rs;
}

因此,当前版本使用一种方法将伪数据的集合XML文件作为POSTDATA发布到REST URI以进行测试。 传递给此方法的SOAP数据公开UUID(GUID)和方法名称。这意味着从这里我有足够的信息来创建需要发送到REST服务的POSDATA消息的XML。 像这样:

<?xml version="1.0" encoding="utf-8"?>
    <Initialise>
    <UUID>d7051980-a690-11dd-ad8b-0800200c9a66</UUID>
</Initialise>

我只需要指出正确的方向,即如何最好地将对象转换为XML以用于REST服务。

谢谢,

尼尔。

2 个答案:

答案 0 :(得分:2)

您是否考虑过使用WCF? There is an easier way发布用于REST交互的服务。

答案 1 :(得分:0)

你可以做的是拥有webservices,以RESTful方式公开服务的页面,或SOAP方式(通过吐出XML)。