在没有命名参数的情况下调用WCF函数?

时间:2013-07-09 11:50:26

标签: asp.net wcf

是否可以配置WCF方法HelloWorld(string test){}来接受发布的数据而不实际指定第一个参数的名称?

即。而不是

<s:Body...>
  <HelloWorld...>
   <test>foo</test>
  </HelloWorld>
</s:Body>

发送

<s:Body...>
  <HelloWorld...>
   foo
  </HelloWorld>
</s:Body>

我认为可以通过将参数类型从String更改为Stream来实现,但我还是不想去那里。

1 个答案:

答案 0 :(得分:0)

我认为这是可能的,以下是我理解的解决方案。

WCF接口

[ServiceContract]
public interface IService1
{
    [OperationContract]
    [WebGet(UriTemplate = "HelloWorld/{test}")]
    string HelloWorld(string test);
}

WCF接口实现

public class Service : IService1
{
    return "Success from Hello World";
}

来自jQuery的Ajax调用

 $.ajax({
       type: 'GET',
       dataType: 'json',
       contentType: 'application/json; charset=utf-8',
       url: baseUrl + '/HelloWorld/TestString',
       success: function (response) {
               alert('Ping reply: ' + response);
       },
       error: function (XMLHttpRequest, textStatus, errorThrown) {
               var jsonFault = JSON.parse(XMLHttpRequest.responseText);
               alert('Reason: ' + jsonFault.Reason + '<br />Detail: ' + jsonFault.DetailedInformation);
       }
 });

我尝试使用单个参数。如果我错了,请多解释一下。

欢迎查询...