سؤال
ال Close
طريقة على ICommunicationObject
يمكن طرح نوعين من الاستثناءات كمخططات MSDN هنا.أنا أفهم لماذا Close
يمكن للطريقة طرح هذه الاستثناءات، ولكن ما لا أفهمه هو سبب Dispose
الأسلوب على وكيل الخدمة يستدعي Close
طريقة بدون try
حولها.أليس كذلك؟ Dispose
الطريقة الوحيدة التي تريد التأكد من عدم طرح أي استثناءات؟
المحلول
يبدو أنه نمط تصميم شائع في كود .NET.هنا اقتباس من المبادئ التوجيهية لتصميم الإطار
فكر في توفير طريقة Close()، بالإضافة إلى Dispose()، إذا كان الإغلاق هو المصطلح القياسي في المنطقة.عند القيام بذلك، من المهم أن تجعل تنفيذ الإغلاق مطابقًا لـ Dispose...
هنا أ مشاركة مدونة حيث يمكنك العثور على حل بديل لمشكلة تصميم System.ServiceModel.ClientBase
نصائح أخرى
نعم، عادةً ما يكون التخلص أحد الأماكن التي تريد التأكد من عدم طرح الاستثناءات فيها.ومع ذلك، استنادا إلى هذا MSDN موضوع المنتدى وكانت هناك بعض الأسباب التاريخية لهذا السلوك.على هذا النحو، فإن النمط الموصى به هو نموذج Try{Close}/catch{Abort}.