ASP.NET Web服务参数类型

时间:2011-11-23 10:44:54

标签: c# asp.net web-services

如何在ASP.NET Web服务中控制参数类型标记?我得到< XML>串LT; / xml> 在一个Web应用程序中,<数据>串LT; / data> 在其他...有没有办法控制这个?

[WebMethod]
public bool TestFunction(string xml)
{
    //DO SOMETHING
    return true;
}

<?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" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <TestFunction xmlns="http://tempuri.org/">
      <xml>string</xml> //<data>string</data>
    </TestFunction>
  </soap:Body>
</soap:Envelope>

编辑:我忘了重命名功能

1 个答案:

答案 0 :(得分:3)

使用您指定的参数名称公开任何方法。如果您将方法更改为public bool TestFunction(string FooBar),则字符串将位于生成的XML中的<FooBar>string</FooBar>标记中。

使用WCF时,您可以使用消息合同或应用MessageParameter来指示序列化程序使用备用名称来更改此行为:

public bool TestFunction([MessageParameter(Name="YourName")]string xml)

但是,我不知道这是否也适用于ASP.Net Web服务。