首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >WCF重试代理

WCF重试代理
EN

Stack Overflow用户
提问于 2013-04-22 23:54:41
回答 6查看 4.4K关注 0票数 17

我正在努力寻找实现WCF重试的最佳方式。我希望让客户体验尽可能干净。我知道有两种方法(见下文)。我的问题是:“有没有我遗漏的第三种方法?也许有一种被普遍接受的方法?

方法#1:创建实现服务接口的代理。对于对代理的每次调用,实现重试。

代码语言:javascript
复制
public class Proxy : ISomeWcfServiceInterface
{
    public int Foo(int snurl)
    {
        return MakeWcfCall<int>(() => _channel.Foo(snurl));
    }

    public string Bar(string snuh)
    {
        return MakeWcfCall<string>(() => _channel.Bar(snuh));
    }

    private static T MakeWcfCall<T>(Func<T> func)
    {
        // Invoke the func and implement retries.
    }
}

方法#2:将MakeWcfCall() (上面)更改为public,并让消费代码直接发送函数。

我不喜欢方法#1的原因是,每次接口更改时都必须更新代理类。

我不喜欢方法2的原因是客户必须将他们的调用包装在一个函数中。

我是不是错过了更好的方法?

编辑

我已经在这里发布了一个答案(见下文),基于公认的答案,它为我指明了正确的方向。我想我应该在答案中分享我的代码,以帮助某人完成我必须完成的工作。希望能有所帮助。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16151361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档