2012-05-22 117 views
1

如果这是一个问题,请道歉。我必须修改现有的ASMX Web服务。问题是,我需要修改Web服务生成的响应。下面是当前响应的一个示例:定义ASP.NET SOAP 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服务响应的信息,我想我错过了这里的一个基本元素。

任何想法非常感谢。

+0

如果您拥有WSDL,这是一个很好的起点。之后,知道web服务如何部署是强制性的,在这种情况下遗留的意义不大。 – BigMike

回答

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; 
} 

随意问任何其他问题。

+0

啊我明白了。所以响应的格式取决于Web方法的返回类型?非常感谢,这是非常有用的:) –

+0

是的,我指的是一个ASMX网络服务。我编辑了我的原始问题,以澄清其他人 –