C # WCF, как создать универсальный метод для установки значений конфигурации Binding - PullRequest
0 голосов
/ 08 января 2010

У меня есть несколько служб 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 ]

2 голосов
/ 08 января 2010

Не могли бы вы передать конечную точку для настройки вместо нее?

Также вам не нужно передавать аргумент по ссылке ref.

1 голос
/ 08 января 2010

Базовый тип клиентских прокси - это универсальный тип 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); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...