C#WCF,如何创建一个泛型方法来设置Binding配置值

时间:2010-01-08 09:55:31

标签: c# wcf

我从控制台应用程序调用了一些WCF服务。

我有编程方式来设置绑定超时,如下所示:

 private static void InitRepClient(ref Reporting.ReportingClient rc)
        {
            rc.Endpoint.Binding.CloseTimeout = new TimeSpan(12, 0, 0);
            rc.Endpoint.Binding.ReceiveTimeout = new TimeSpan(12, 0, 0);
            rc.Endpoint.Binding.SendTimeout = new TimeSpan(12, 0, 0);
            rc.Endpoint.Binding.OpenTimeout = new TimeSpan(12, 0, 0);
        }

我想改为输入参数以接受任何WCF服务。这样我就不必为每项服务提供1个功能。我的输入参数应该是什么类类型?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您是否可以传入要配置的端点?

此外,您不需要通过ref传递参数。

答案 1 :(得分:1)

客户端代理的基本类型是泛型类型ClientBase<T>。这意味着您需要使方法具有通用性,如下所示:

private static void InitClient<T>(ClientBase<T> client) where T : class
{ 
   client.Endpoint.Binding.CloseTimeout = new TimeSpan(12, 0, 0); 
   client.Endpoint.Binding.ReceiveTimeout = new TimeSpan(12, 0, 0); 
   client.Endpoint.Binding.SendTimeout = new TimeSpan(12, 0, 0); 
   client.Endpoint.Binding.OpenTimeout = new TimeSpan(12, 0, 0); 
}