يمكن Resharper يتم تعيين لتحذير إذا IDisposable لم يتم التعامل معها بشكل صحيح ؟

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

سؤال

هناك الإعداد في Resharper 4 (أو حتى Visual Studio نفسها...) أن قوات تحذير إذا نسيت أن التفاف التعليمات البرمجية في using كتلة ، أو أمية التصرف السليم في الدعوة finally كتلة ؟

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

المحلول

تصحيح تلقائي التصرف التحليل يتطلب التنسيق (تحليل تدفق البيانات) في طريقة عالمية.فمن غير المرجح أن إنشاء IDisposable موضوع لا يتصل بأي طريقة و لا تمر حولها جدال.إذا المتاح كائن يتم تمريرها إلى أساليب أخرى (بما في ذلك الدعوة أعضائها ، عندما "هذا" هو ضمنا مرت) ، أداة تحليل ما إذا كان التصرف لا يسمى داخل الكائن أو ذاك لا يتم تخزينها في مكان ما في وقت لاحق التخلص منها.

وقال السذاجة تنفيذ التحقق إذا المتاح هو كائن في الواقع التخلص منها مع "باستخدام" بناء أو بأي طريقة أخرى سوف يحقق الكثير من ايجابيات كاذبة ، وتقديم تحليل عديمة الفائدة.

نصائح أخرى

السخط مع الأساليب الحالية ، أنا خلق بلدي: EyeDisposable.انها IL instrumenter لذلك ينبغي أن قبض على العديد من التسريبات لم يدرك من خلال تحليل ثابت.انها لا تزال في مرحلة مبكرة ، inpuits هي موضع ترحيب.

هل يمكن تصميم صغير إضافة إلى R# هل يمكن أن يكون تشغيل داخل محرر التعليمات البرمجية التي بمسح رمز والتحديثات تحليل رمز يعكس أنك كائن من المفقودين هيكل لقد وصفت.

أود أن ننظر في R# المساعد في الهندسة المعمارية إذا قررت أن تذهب في هذا الطريق.

انظر هذا بلوق وظيفة بعض الحيل من أجل اختبار Dispose() في DEBUG.في الأساس, كتابة التصحيح فقط المدمر الذي يؤكد أن كنت التخلص منها.

قد ترغب في النظر في التقدم لهذا: http://msdn.microsoft.com/en-us/library/ms182328(مقابل.80).aspx

من المؤسف R# لا التعامل معها ، حتى لو كان مجرد تحذير الحقول في الفئة الخاصة بك و/أو المتغيرات التي تقوم بإنشائها.

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