WCF服务客户端扩展

时间:2016-03-10 11:37:08

标签: c# .net wcf

我想将添加行为包装到wcf客户端端点

基本代码是:

using (var c = new Service1Client())
{
    c.Endpoint.EndpointBehaviors.Add(new EPBeh());
    c.GetData(1);
}

创建扩展后,它变得有点不同:

using (var c = new Service1Client().AddEndpointBehavior<Service1Client, IService1>(new EPBeh()))
{
    c.GetData(1);
}

我用这样的扩展名做了:

public static class ClientExtensions
{
    public static T AddEndpointBehavior<T,C>(this T client, IEndpointBehavior beh) 
        where T : ClientBase<C> 
        where C : class
    {
        client.Endpoint.EndpointBehaviors.Add(beh);
        return client;
    }
}

但看起来糟糕

有没有办法让它像链一样但没有明确定义通用类型?

应该是

var c = new Service1Client().AddEndpointBehavior(new EPBeh());

0 个答案:

没有答案
相关问题