هل يجب أن أتخلص من SPWeb هذا؟
-
27-10-2019 - |
سؤال
أتمنى أن يساعدني أحد.أحتاج إلى الحصول على الويب الجذري للموقع الحالي من SPContext.يمكن القيام بذلك بسهولة مع ما يلي Genacodicetagpre
أنا مرتاح لفكرة أن كائن SPSite هنا في SPContext.Current. Site .RootWeb لا يجب التخلص منه ، ولكن ماذا عن كائن SPWeb الذي أحصل عليه من SPSite.هل ، عندما يتم التخلص من SPSite ، سيتم التخلص من SPWeb الخاص بجذر Web؟أم أحتاج إلى التخلص منه بنفسي؟
المحلول
يجب عدم التخلص من المكالمات إلى SPSite.RootWeb.سيؤدي التخلص من SPSite أيضًا إلى التخلص من RootWeb.
هناك خطأ في SPDisposeCheck حيث يتم وضع علامة عليه إذا تخلصت منه ، وإذا لم تقم بذلك (ملعون في كلتا الحالتين!) فسألت كيف حللت هذا في منشور المدونة هذا ، حيث لا يمكنك استخدام سمة SPDisposeCheckIgnore في كتل الامتيازات المرتفعة.
نصائح أخرى
لا لا يجب عليك.يجب عليك فقط التخلص من الأشياء التي تتحكم فيها.نظرًا لأن السياق هو شيء تم إنشاؤه بواسطة SharePoint ، فلا يمكنك التخلص منه لأن الكائنات الأخرى قد تعتمد عليه.
إذا كنت ستنشئ مثيلاً خاصًا بك من SPWeb من خصائص هذه الكائنات ، فستحتاج إلى التخلص منه.أي .. Genacodicetagpre
فيما يلي مقال عن أفضل الممارسات للتخلص من كائنات SharePoint.
http://msdn.microsoft.com/en-us/library/aa973248(v=office.12).aspx
يجب عادة استخدام SPSite و SPWeb في عبارة مستخدمة. Genacodicetagpre
سيؤدي هذا تلقائيًا إلى تحرير كائن SPWeb بشكل صحيح بعد الانتهاء منه.