Au travail, j'ai trouvé une classe d'aide pour gérer les services WCF qui implémente IDisposable et a un ServiceAgent qui dérive de System.ServiceModel.ClientBase. La méthode Dispose() ferme tous les services WCF ouverts. L'assistant expose les méthodes qui enveloppent les appels aux méthodes du ServiceAgent. Chaque méthode est construite sur ce modèle:IDisposable et WCF
public void WCFMethod1()
{
using(this)
{
this.ServiceAgent.WCFMethod1();
}
}
public override void Dispose()
{
try
{
this.ServiceAgent.Close();
}
catch
{
this.ServiceAgent.Abort();
}
finally
{
this.ServiceAgent = null;
}
}
Voici la question: est-ce que l'utilisation de (ce) est une bonne pratique?
il est une solution de contournement pour bug/mauvais code de WCF. Lire la suite sur http://geekswithblogs.net/bcaraway/archive/2008/07/06/123622.aspx – Rohit
Non ce n'est pas une implémentation du travail. Le * Dispose() * est censé nettoyer la classe "* WCFMethod *" et ne pas fermer les services. Comme Andrey et Pavel disent que cette façon de faire est confuse. Lorsque « * Dispose() * » est appelé, je ne suis pas attendre en utilisant cet objet plus parce qu'il est censé être disposé (et par définition, il peut être nettoyé à tout moment par le GC) –