我的C#winforms应用程序中有一个SOAP webservice,但我正在尝试使用基于任务的async/await方法生成WSDL.exe。
我已经看过文件了
here
并尝试将以下XML文件添加到
par
但是它仍然没有为我提供基于任务的异步调用webservice方法的方法。
// BEGIN WSDLPARAMETERS.XML
<wsdlParameters xmlns="http://microsoft.com/webReference/">
<webReferenceOptions>
<verbose>false</verbose>
<codeGenerationOptions>properties newAsync enableDataBinding</codeGenerationOptions>
</webReferenceOptions>
</wsdlParameters>
// END WSDLPARAMETERS.XML
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community>wsdl.exe "http://********/interchangeservices.asmx" /out:"****\WebServices.cs" /l:CS /n:"AdelaideInterchangeAutomation" /par:"*****\wsdlparameters.xml"
返回如下方法
/// <remarks/>
public AwaitingUpload CheckHistoryNotUploaded() {
object[] results = this.Invoke("CheckHistoryNotUploaded", new object[0]);
return ((AwaitingUpload)(results[0]));
}
/// <remarks/>
public void CheckHistoryNotUploadedAsync() {
this.CheckHistoryNotUploadedAsync(null);
}
/// <remarks/>
public void CheckHistoryNotUploadedAsync(object userState) {
if ((this.CheckHistoryNotUploadedOperationCompleted == null)) {
this.CheckHistoryNotUploadedOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckHistoryNotUploadedOperationCompleted);
}
this.InvokeAsync("CheckHistoryNotUploaded", new object[0], this.CheckHistoryNotUploadedOperationCompleted, userState);
}
private void OnCheckHistoryNotUploadedOperationCompleted(object arg) {
if ((this.CheckHistoryNotUploadedCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.CheckHistoryNotUploadedCompleted(this, new CheckHistoryNotUploadedCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
await
关键字。
public AwaitingUpload CheckHistoryNotUploaded() {
object[] results = this.Invoke("CheckHistoryNotUploaded", new object[0]);
return ((AwaitingUpload)(results[0]));
}
/// <remarks/>
public async Task<AwaitingUpload> CheckHistoryNotUploadedAsync() {
await .....
}