定义ASP.NET SOAP Web服务响应

时间:2012-05-22 12:00:58

标签: asp.net web-services soap asmx

如果这是一个amatuer问题,请道歉。我必须修改现有的ASMX Web服务。问题是,我需要修改Web服务生成的响应。以下是当前响应的示例:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" mlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <InsertCaseShortResponse xmlns="http://website.com/Service/">
      <InsertCaseShortResult>50314</InsertCaseShortResult>
    </InsertCaseShortResponse>
  </soap:Body>
</soap:Envelope>

如果成功,InsertCaseShortResult将返回唯一的引用号,如果失败则返回错误消息。我需要做的是添加另一个响应标记,该标记给出了插入是否成功的真或假标记。我无法在任何地方找到关于如何构建Web服务响应的信息,我想我在这里缺少一个基本元素。

非常感谢任何想法。

1 个答案:

答案 0 :(得分:2)

我认为“遗产”是指ASMX网络服务。

基于您的WSDL,您似乎在Web服务服务器端代码中有类似的内容:

[WebMethod]
public int InsertCaseShort(/* params here */)
{
    int result;

    /* Code here */

    return result;
}

要添加其他字段,您需要返回类引用而不是整数值。

示例:

public class InsertCaseShortResult
{
    public int StatusCode { get; set; }
    public bool Successful { get; set; }
}

在你的WebMethod中:

[WebMethod]
public InsertCaseShortResult InsertCaseShort(/* params here */)
{
    var result = new InsertCaseShortResult();

    /* Code here */

    return result;
}

随意提出任何其他问题。