سؤال

We have code where at times we'll be returning an SPWeb object from a function. So for example:

public SPWeb getDeptWeb()
{
    SPWeb deptWeb = SpSite.OpenWeb(SpContext.Web.ID);
    ...
    return deptWeb;
}

How can we dispose of the SPWeb object in this instance? Or is it sufficient to dispose it where we're accepting the returned parameter?

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

المحلول

The best way is probably to dispose of the SPWeb in the caller, e.g. with the using statement:

public SPWeb getDeptWeb()
{
    SPWeb deptWeb = SpSite.OpenWeb(SpContext.Web.ID);
    // ...
    return deptWeb;
}

public void Foo()
{
    using (SPWeb deptWeb = getDeptWeb()) {
        // Do something with the website...
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top