L'appel Abort () sur un proxy IClientChannel peut-il générer une exception?
-
07-07-2019 - |
Question
En fonction de la documentation et des articles, il est recommandé d'appeler Abort () sur un proxy client si une exception / un défaut inattendu est rencontré. Voir ce qui suit (simplifié):
MyServiceClient proxy = null;
try {
proxy = new MyServiceClient();
proxy.DoSomething();
proxy.Close();
} catch (Exception ex) {
if (proxy != null)
proxy.Abort();
}
Existe-t-il une possibilité que l'appel à Abort () lève une exception lui-même? L’appel à Abort () doit-il être dans son propre try / catch?
La solution
Non, Abandonner ne échouera pas (mais peut-être .Close () ou .Dispose ()). Appeler .Abort () est le "marteau". approche pour mettre fin à une chaîne - elle est simplement démantelée, quelle que soit la gestion du message en cours.
Utilisez-le seulement avec précaution - par exemple dans un cas exceptionnel d'exception lors de l'appel de .Close () a échoué. C’est un objectif réel et une utilisation appropriée.
Marc