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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top