2009-02-13 3 views

Répondre

5

Tout d'abord, les procurations WCF sont IDisposable, vous pouvez donc genre d'utilisationusing:

using(var proxy = new MyProxy()) { // see below - not quite enough 
    // use proxy 
} 

Malheureusement, WCF a également une implémentation buggy Dispose() qui jette régulièrement des exceptions. Cependant, here's a really cool trick pour le faire fonctionner correctement. J'ai également blogué à ce sujet myself, mais je pense que le premier lien est beaucoup mieux. Donc, utilisez IDisposable et using, mais utilisez-le avec prudence (dans ce cas).

La définition d'un champ habituellement ne fait aucune différence. Il y a quelques cas marginaux (tels que les variables capturées par plusieurs délégués, les champs statiques, les objets de longue vie, etc.), mais en général, ils le font seuls. En particulier, ne pas faire cela, car cela peut théoriquement prolonger la vie:

if(field != null) field = null; // BAD 
+0

Il semble que OP parle d'un service, pas d'un client, donc je ne sais pas si cela est directement relutif (mais il est utile de connaître les choix de conception de WCF en ce qui concerne Close/Dispose/Abort). – Brian

0

Vous ne devez définir une variable sur null que si elle doit être accessible longtemps après. Dites, un champ sur un objet à longue durée de vie ou un champ statique. Cela vaut en général, pas seulement pour WCF.

Questions connexes