扩展Web服务代理类

发布于 2024-11-26 22:45:29 字数 223 浏览 9 评论 0原文

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

我通常会重写基类以添加额外的功能,但由于代理方法不可重写,我无法保持方法名称相同。我能想到的唯一其他选择是使用“Shadows”关键字来实现我想要的效果。现在我不喜欢阴影的想法,因为它不是特别面向对象的,但在这种情况下,它似乎是一个巧妙的解决方案。

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

I need to add functionality to my web service calls so object translation and automatic retries are done and abstracted away.

I would usually override the base class to add the extra functionality, but as the proxy methods aren't over-ridable I can't keep the method names the same. The only other option I can think of to do it this way is to use the 'Shadows' keyword to achieve what I want. Now I don't like the idea of shadows as it isn't particularly OOP, but in this case it seems to make a neat solution.

What other methods do people use to add functionality to their web service proxy classes without modifying the generated classes?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清风挽心 2024-12-03 22:45:29

您可以使用组合优于继承原则来实现此目的。例如,在您的 Web 服务周围编写一个包装器以获得所需的功能。

更新:代码示例

interface IWebService
{
    void DoStuff();
}

public class MyProxyClass
{
    IWebService service;

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

You can use the Composition over Inheritance principle to achieve this. E.g. write a wrapper around your Web Service to obtain the desired functionality.

Update: code sample

interface IWebService
{
    void DoStuff();
}

public class MyProxyClass
{
    IWebService service;

    public void DoStuff()
    {
        //do more stuff
        service.DoStuff();
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文