扩展Web服务代理类

时间:2011-07-28 14:29:59

标签: .net vb.net web-services proxy-classes

我需要为我的Web服务调用添加功能,以便完成对象转换和自动重试并将其抽象化。

我通常会覆盖基类来添加额外的功能,但由于代理方法不能过度使用,我无法保持方法名称相同。我能想到这样做的唯一另一个选择是使用'Shadows'关键字来实现我想要的。现在我不喜欢阴影的想法,因为它不是特别的OOP,但在这种情况下它似乎做出了一个简洁的解决方案。

人们使用哪些其他方法在不修改生成的类的情况下向其Web服务代理类添加功能?

1 个答案:

答案 0 :(得分:1)

您可以使用Composition over Inheritance原则来实现此目的。例如。在Web服务周围编写一个包装器以获得所需的功能。

更新:代码示例

interface IWebService
{
    void DoStuff();
}

public class MyProxyClass
{
    IWebService service;

    public void DoStuff()
    {
        //do more stuff
        service.DoStuff();
    }
}