【发布时间】:2011-07-28 14:29:58
【问题描述】:
我需要向我的 Web 服务调用添加功能,以便完成并抽象出对象转换和自动重试。
我通常会重写基类以添加额外的功能,但由于代理方法不可重写,我无法保持方法名称相同。我能想到的唯一其他选择是使用“阴影”关键字来实现我想要的。现在我不喜欢阴影的想法,因为它不是特别 OOP,但在这种情况下,它似乎是一个巧妙的解决方案。
人们还使用哪些其他方法在不修改生成的类的情况下向其 Web 服务代理类添加功能?
【问题讨论】:
-
您使用的是服务参考还是 Web 参考?服务参考为您提供了更多工具来做您想做的事。
-
Web 参考,我们的客户群使用 .net 2。
-
那太糟糕了。您应该考虑将它们升级到 .NET 3.5 - 它只是 .NET 2.0 Service Pack 2 加上一些新程序集 - 包括 WCF。您将能够编写一些中心代码来执行这种横切关注点,而无需为任何操作编写包装器。
-
我知道,但是让 1000 家独立公司升级是一项艰巨的工作。 :( 新客户必须安装 .net 4,所以最终......有一天...... :)
-
您使用安装程序技术吗?您可以使 .NET 3.5 可再发行组件成为依赖项。下次他们升级您的软件时,他们将获得 .NET 3.5。或者,您可以使此新功能(重试等)依赖于 .NET 3.5,因此如果他们不想要新功能,则不需要 .NET 3.5。但如果他们安装新功能,他们将获得 .NET 3.5。
标签: .net vb.net web-services proxy-classes