يمكن استدعاء إحباط () على وكيل IClientChannel رمي استثناء؟

StackOverflow https://stackoverflow.com/questions/1418601

  •  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 () فشل. هذا كل شيء هو الهدف الحقيقي والاستخدام السليم.

ومارك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top