我在这里查看这篇MSDN文章:http://msdn.microsoft.com/en-us/library/bb924552.aspx
在代码隐藏文件中,他们创建了一个名为CostOfSandwiches的函数,它接受一个名为quantity的int参数。
当他们引用功能客户端时,他们传递4个参数。我想知道这些额外参数的定义,它们用于什么等等。
这是服务器端代码:
public class CostService
{
[OperationContract]
public double CostOfSandwiches(int quantity)
{
return 1.25 * quantity;
}
// Add more operations here and mark them with [OperationContract]
}
这是客户端电话:
function Button1_onclick() {
var service = new SandwichServices.CostService();
service.CostOfSandwiches(3, onSuccess, null, null);
}
function onSuccess(result){
alert(result);
}
是否有一些标准的可选参数列表可以传递?指向文档的链接?
编辑:在与同事询问后,他发给我了这个。任何人都知道这是由什么产生的以及由什么产生的? function Sys$Net$WebServiceProxy$_invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext) {
/// <summary locid="M:J#Sys.Net.WebServiceProxy._invoke" />
/// <param name="servicePath" type="String"></param>
/// <param name="methodName" type="String"></param>
/// <param name="useGet" type="Boolean"></param>
/// <param name="params"></param>
/// <param name="onSuccess" type="Function" mayBeNull="true" optional="true"></param>
/// <param name="onFailure" type="Function" mayBeNull="true" optional="true"></param>
/// <param name="userContext" mayBeNull="true" optional="true"></param>
/// <returns type="Sys.Net.WebRequest" mayBeNull="true"></returns>
var e = Function._validateParams(arguments, [
{name: "servicePath", type: String},
{name: "methodName", type: String},
{name: "useGet", type: Boolean},
{name: "params"},
{name: "onSuccess", type: Function, mayBeNull: true, optional: true},
{name: "onFailure", type: Function, mayBeNull: true, optional: true},
{name: "userContext", mayBeNull: true, optional: true}
]);
if (e) throw e;
onSuccess = onSuccess || this.get_defaultSucceededCallback();
onFailure = onFailure || this.get_defaultFailedCallback();
if (userContext === null || typeof userContext === 'undefined') userContext = this.get_defaultUserContext();
return Sys.Net.WebServiceProxy.invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext, this.get_timeout(), this.get_enableJsonp(), this.get_jsonpCallbackParameter());
}
答案 0 :(得分:1)
当您将服务引用添加到“CostOfSandwiches.svc”时,您的同事发送给您的代码是由Visual Studio的工具生成的。
当VS生成您的客户端代理时,它会为您包装实际的服务调用,允许您控制服务的调用方式以及完成后如何做出反应。