【发布时间】:2010-10-10 19:43:12
【问题描述】:
我正在为 C#/.NET 3.5 项目设计架构,该项目将通过 WCF 在客户端和服务器之间进行通信。这通常是一个查询-响应系统,例如,其中一种服务方法可能如下所示:
User GetUserByLastName(string lastName);
另外一项规定是,WCF 客户端方法需要异步调用,以免对 UI 的响应产生不利影响,因为在某些情况下,这些方法可能需要很长时间才能执行。
我已经根据 Microsoft 的文档实现了一个概念证明,因此客户端代理是使用 Visual Studio 中的“添加服务引用”对话框自动生成的,并且我选中了包含异步方法的选项。
这可以很好地作为概念证明,但我遇到了许多博客文章和其他参考资料,强烈建议不要在大型项目中使用自动生成的代理。其中一些来源提供了涉及手动创建代理或使用反射动态创建代理的替代方案,但这些解决方案似乎总是只实现同步 WCF 调用。
为异步 WCF 客户端自动生成的代理涉及相当多的样板代码,我不想为每个服务和方法手动实现和维护这些代码。
所以我的问题是:
为异步 WCF 服务使用自动生成的代理是不是一个坏主意,如果是这样,是否有不涉及大量手动维护样板代码的好选择?
【问题讨论】: