c# - SharePoint memory leak -
does contain memory leak? i've been trying better understand memory leaks, can't tell if have corrected this? if not, how correctly dispose of spweb
object , spsite
object?
using (spweb owebsite = new spsite(weburl).openweb()) //open sp web { splistcollection colllist = owebsite.lists; //open lists foreach (splist olist in colllist) //for each list execute { if (!olist.hidden) //if list hidden else nothing { listsitesdropdownbox.items.add(new listitem(spencode.htmlencode(olist.title), spencode.htmlencode(olist.title))); viewstate["item" + counter] = spencode.htmlencode(olist.title); counter++; } } }
yep, does. dispose of spweb
forget disposing of spsite
.
right way this:
using (var site = new spsite(weburl)) using (var web = site.openweb()) { // ... }
note equivalent to:
using (var site = new spsite(weburl)) { using (var web = site.openweb()) { // ... } }
but omitted braces outer using
reduce code nesting. bracing rules same if
.
a few stylistic remarks:
- please, don't use systems hungarian in c# code.
list
. comments rephrase code above don't make sense. keep them constructive, i.e. explaining purpose of code. instead of 4 comments, should've written in beginning:
// populate drop-down list list names , save them in viewstate
Comments
Post a Comment