عند استدعاء التخلص إذا تمرير سبكونتيكست.موقع لمكتبة الصف?
سؤال
أنا فقط أبحث عن القليل من التحقق من سلامة العقل على هذا!
أنا أبحث في العديد من الفئات التي لديها SPSite
أو SPWeb
كما منشئ للفئة.
يتم إنشاء مثيل الطبقة باستخدام SPContext.Site
كمعلمة سبسيت
على سبيل المثال.
public MyClass {
SPWeb _web;
public MyClass(SPSite site) {
_web = site.RootWeb;
}
// Other methods that make use of _web
}
ينبغي _web
يتم التخلص منها?هو _ ويب مجرد مؤشر إلى سبكونتيكست.الموقع.روتويب أم أن هناك نسخة أخرى من SPWeb
التي تحتاج إلى التخلص منها?
أعرف ذلك مع SPContext.Site.OpenWeb()
يجب عليك الاتصال Dispose()
.
فماذا عن الاستخدام أعلاه?
سوف يمر SPSite
/ SPWeb
كما تعيينه إلى متغير محلي دائما يكون مجرد إشارة إلى نفسه SPContext
?
المحلول
في قضيتك _web
لا تحتاج إلى التخلص منها كما كنت تحصل عليه من RootWeb
وكائنات الويب التي تم استردادها من RootWeb
لا تحتاج إلى التخلص منها.
إيدت
أيضا ، إذا كان SPSite
الكائن الذي تم تمريره كمعلمة إلى المنشئ مشتق من SPContext
, ، لا تحتاج إلى التخلص منها.وإلا فإنه يحتاج إلى التخلص منها إما في فئة دعا أو من فئة الدعوة اعتمادا على الشرط.
نصائح أخرى
لا تتصل صراحة التخلص () على سبسيت.الملكية روتويب.سيتم التعامل مع تنظيف التخلص تلقائيا من قبل شاريبوانت والإطار الصافي.لالتخصيصات شاريبوانت القائمة إزالة الجذر الصريح التخلص من المستحسن لتجنب حالة حالة الحافة حيث سبكونتيكست.الحالي.ويب لديه المساواة إلى سبسيت.الجذر.يمكن أن تحدث مشاكل عند التخلص من روتويب عند الحصول عليها من أي اختلاف من سبكونتيكست (على سبيل المثال:سبكونتيكست.الموقع.روت ويب ، سبكونتيكست.الحالي.الموقع.روتويب و جيتكونتيكستسيت (السياق).الجذر).
لمزيد من الزيارة...مسن