目录
article
关于 sharepoint 你不知道的那些事-dispose
关于 sharepoint 你不知道的那些事-dispose
最近开发代码的过程中,发现书上有一段关键的内容在开发过程中很容易忽略,具体如下:
以下代码输出一个站点集根站点的所有列表名称
SPSite site = new SPSite("http://siteUrl"); //实例化网站集对象
SPWeb web = site.RootWeb; //获取到根网站
foreach(SPList list in web.Lists) //遍历所有列表
{
Page.Response.Write(list.Title); //输出列表标题
}
web.Dispose(); //释放网站对象
site.Dispose(); //释放网站集对象
此处对site和web变量都做了dispose,即释放变量的操作。
这里需要说明的是,代码中实例化的网站集对象和站点对象都是需要用Dispose来释放的,否则会造成服务器内存泄露
除了调用Dispose方法释放对象外,一种更好的方式是采用using语句。
using(SPSite site = new SPSite("http://siteUrl"))
{
using(SPWeb web = site.RootWeb){
foreach(SPList list in web.Lists){ //遍历所有列表
Page.Response.Write(list.Title); //输出列表标题
}
}
}
如果代码运行在MOSS环境下,可以直接调用上下文对象,不需要实例化新的SPSite和SPWeb对象,上下文对象是不需要手工释放的,从上下文获取对象的代码如下。
SPSite site = SPContext.Current.Site; //获取当前站点集
SPWeb web = SPContext.Current.Web; //获取当前站点