我正在将.NET 1.1内置的.NET GUI应用程序迁移到.NET 4.0。该应用程序使用WSE 2.0进行Web服务通信。 Web服务通讯模块包含Web服务代理和实现异步功能的其他类文件。该模块位于.NET GUI应用程序和托管Web服务的应用程序服务器之间。 Application Server已在非Microsoft技术中实现,迁移项目不应更改服务器和Web服务。
.NET GUI应用程序中的所有类和表单都调用Web服务代理类的同步方法名称。 Web服务代理派生自自定义类,而自定义类又派生自Microsoft.Web.Services2.WebServicesClientProtocol。自定义类重写“Invoke”方法。方法“BeginInvoke”在覆盖的“Invoke”方法内部调用。因此,即使应用程序类和表单调用同步methodName,最终Web请求也是异步的。 覆盖“调用”方法,自定义类启用显示对话窗口,其中取消按钮用于取消Web请求。
WCF中的代理类具有以下Web方法调用的实现。在WCF中有什么东西可以允许自定义调用Base.Channel.MethodName(输入)的功能吗?基本上可以允许在运行时将同步Web方法调用更改为异步的东西?
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
getNewCustomerCodeResponse iAccountService.getNewCustomerCode(getNewCustomerCode request)
{
return base.Channel.getNewCustomerCode(request);
}