Why do some SharePoint examples use
using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
...
}
and not just simply?
SPSite site = SPContext.Current.Web.Site;
...
Update
I think I have narrowed the question down to the following:
It seems that I should not use SPContent.Current
directly, unless I am certain, that my code runs inside SharePoint. But when would that not be true?
Take a look at the best practices documentation on disposing objects in SharePoint 2010 from Microsoft, however there are opposing views.
There are a few key takeaways for SharePoint projects:
using
)You might have problems with consistency with your multiple SP.. objects.
In the end SPSite site = SPContext.Current.Web.Site;
is fine in some instances, but you do not have control over this site
object - that might be the problem. If you go for new SPSite(...)
you will always have your SPSite
and not something SharePoint created and managed for you.
Personally I almost always go for the using
structure so all objects are disposed properly afterwards. Alternatively I use SPContext.Current.Web
without disposing.
It depends on the context in which your code runs. For instance, you need to create a new SPSite
instance if you are running within a RunWithElevatedPrivileges
block.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With