sag*_*y36 5 c# wcf asynchronous web-services
不幸的是,我不在城里,无法测试我需要向同事传达的东西,所以我希望得到一些帮助.
当我创建对Web服务的服务引用并检查异步复选框时,我注意到即使我的Web服务中包含所有异步方法,客户端上的代理或元数据也会创建相同方法的同步版本.
换句话说,我的Web服务上有一个名为GetCategoriesAsync的方法.即使没有为GetCategories编写的方法,客户端上的Reference.cs文件(在服务引用内)也会自动生成它.我也能够在WCF服务测试客户端中执行此方法.
我的问题是,我是否可以选择从我的客户端调用同步或异步方法,它将通过intellisense显示?显然,这将假设使用或不使用async,Task和await关键字调用适当的方法.
服务器和客户端通过网络分开。两者都不关心对方如何生成 Web 服务协议指定的字节。它们都无法检测对方是同步还是异步。
选择你喜欢的。
您可以拥有同步服务器端实现和异步客户端存根方法。只需让生成器发出异步版本,您就可以以异步方式调用任何服务。“他们仍然会通过智能感知出现……?” - 是的,当然,您生成的所有内容都会显示出来。如果需要的话生成它们。
TL;DR:如果您想使用异步方法,请生成并使用它们。您不需要修改服务器。如果您不拥有该服务器(可能是第三方非 .NET 服务器),您仍然可以以异步方式调用它。