我需要为我的Web服务调用添加功能,以便完成对象转换和自动重试并将其抽象化。
我通常会覆盖基类来添加额外的功能,但由于代理方法不能过度使用,我无法保持方法名称相同。我能想到这样做的唯一另一个选择是使用'Shadows'关键字来实现我想要的。现在我不喜欢阴影的想法,因为它不是特别的OOP,但在这种情况下它似乎做出了一个简洁的解决方案。
人们使用哪些其他方法在不修改生成的类的情况下向其Web服务代理类添加功能?
答案 0 :(得分:1)
您可以使用Composition over Inheritance原则来实现此目的。例如。在Web服务周围编写一个包装器以获得所需的功能。
更新:代码示例
interface IWebService
{
void DoStuff();
}
public class MyProxyClass
{
IWebService service;
public void DoStuff()
{
//do more stuff
service.DoStuff();
}
}