2010-01-08 5 views
0

J'ai quelques services WCF que j'appelle depuis une application de console.C# WCF, comment créer une méthode générique pour définir des valeurs de configuration de liaison

J'ai méthodes pour définir le délai d'attente de liaison programatically comme ceci:

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); 
     } 

Je veux changer la place du paramètre d'entrée pour accepter un service WCF. Donc je n'ai pas besoin d'avoir une fonction pour chaque service. De quel type de classe mon paramètre d'entrée devrait-il être?

Merci d'avance.

Répondre

2

Ne pourriez-vous pas passer le point d'extrémité à configurer à la place?

De même, vous n'avez pas besoin de passer l'argument par réf ici.

1

Le type de base des proxys clients est un type générique ClientBase<T>. Cela signifie que vous devrez rendre votre méthode générique, comme ceci:

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); 
} 
Questions connexes