يمكن استدعاء إحباط () على وكيل IClientChannel رمي استثناء؟
-
07-07-2019 - |
سؤال
واستنادا إلى الوثائق والمقالات فمن المستحسن للاتصال إحباط () على وكيل العميل إذا تم مصادفة استثناء غير متوقع / خطأ. راجع ما يلي (المبسطة):
MyServiceClient proxy = null;
try {
proxy = new MyServiceClient();
proxy.DoSomething();
proxy.Close();
} catch (Exception ex) {
if (proxy != null)
proxy.Abort();
}
هل هناك أي إمكانية الدعوة إلى إحباط () رمي استثناء نفسها؟ يجب الدعوة لإجهاض () تكون ضمن الخاصة به حاول / catch؟
المحلول
لا، لن تفشل إحباط (ولكن .Close () أو .Dispose (قد)). داعيا .Abort () هو النهج "مطرقة" لإنهاء قناة - انها ممزقة فقط بانخفاض، بغض النظر عن لمعالجة رسائل المستمر
استخدم بعناية فقط - على سبيل المثال في قضية الصيد استثناء عند استدعاء .Close () فشل. هذا كل شيء هو الهدف الحقيقي والاستخدام السليم.
ومارك
لا تنتمي إلى StackOverflow