我从控制台应用程序调用了一些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个功能。我的输入参数应该是什么类类型?
提前致谢。
答案 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);
}