异步WCF服务调用
本文关键字:调用 服务 WCF 异步 | 更新日期: 2023-09-27 18:16:30
我正在使用EAP从WP页面异步调用WCF服务:
ServiceReference1.Service1Client proxy = new ServiceReference1.Service1Client();
proxy.loginCompleted += DoLogin;
proxy.loginAsync("user", "password");
在reference .cs中,我看到下面的代码看起来像APM:
public System.IAsyncResult Beginlogin(string usn, string pwd, System.AsyncCallback callback, object asyncState)
{
object[] _args = new object[2];
_args[0] = usn;
_args[1] = pwd;
System.IAsyncResult _result = base.BeginInvoke("login", _args, callback, asyncState);
return _result;
}
public bool Endlogin(System.IAsyncResult result)
{
object[] _args = new object[0];
bool _result = ((bool)(base.EndInvoke("login", _args, result)));
return _result;
}
为什么我使用EAP调用WCF服务时会有APM方法?
当你生成一个Service Reference并将其设置为在客户端生成异步操作时,从。net 3.5及以上版本开始,它将调用带有/async /tcv:Version35
参数的svcutil.exe
,并生成APM和EAP异步操作。
当使用/tcv:Version35和/async开关时,基于事件和生成基于回调/委托的异步方法。在此外,还支持启用linq的数据集和DateTimeOffset启用。