سؤال

ال Close طريقة على ICommunicationObject يمكن طرح نوعين من الاستثناءات كمخططات MSDN هنا.أنا أفهم لماذا Close يمكن للطريقة طرح هذه الاستثناءات، ولكن ما لا أفهمه هو سبب Dispose الأسلوب على وكيل الخدمة يستدعي Close طريقة بدون try حولها.أليس كذلك؟ Dispose الطريقة الوحيدة التي تريد التأكد من عدم طرح أي استثناءات؟

هل كانت مفيدة؟

المحلول

يبدو أنه نمط تصميم شائع في كود .NET.هنا اقتباس من المبادئ التوجيهية لتصميم الإطار

فكر في توفير طريقة Close()، بالإضافة إلى Dispose()، إذا كان الإغلاق هو المصطلح القياسي في المنطقة.عند القيام بذلك، من المهم أن تجعل تنفيذ الإغلاق مطابقًا لـ Dispose...

هنا أ مشاركة مدونة حيث يمكنك العثور على حل بديل لمشكلة تصميم System.ServiceModel.ClientBase

نصائح أخرى

نعم، عادةً ما يكون التخلص أحد الأماكن التي تريد التأكد من عدم طرح الاستثناءات فيها.ومع ذلك، استنادا إلى هذا MSDN موضوع المنتدى وكانت هناك بعض الأسباب التاريخية لهذا السلوك.على هذا النحو، فإن النمط الموصى به هو نموذج Try{Close}/catch{Abort}.

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