عند استدعاء التخلص إذا تمرير سبكونتيكست.موقع لمكتبة الصف?

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/75597

  •  10-12-2019
  •  | 
  •  

سؤال

أنا فقط أبحث عن القليل من التحقق من سلامة العقل على هذا!

أنا أبحث في العديد من الفئات التي لديها 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, ، لا تحتاج إلى التخلص منها.وإلا فإنه يحتاج إلى التخلص منها إما في فئة دعا أو من فئة الدعوة اعتمادا على الشرط.

نصائح أخرى

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

لمزيد من الزيارة...مسن

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