|
sharepoint的对象模型的属性和方法有多种,可能对于一些初学者不明白他们之间有什么区别,那种更优越,在何种情况下用那种属性或方法,通过这篇文章你会有所了解
1,splist
有些人喜欢通过列表的名字去获得列表,
using using (SPWeb web = site.OpenWeb())
}
(SPSite site = new SPSite(strSite))
{
}
在这个例子中,代码先根据url返回列表的guid,然后再根据guid去找web下的list
2,SPListItemColliction
using using (SPWeb web = site.OpenWeb())
SPList oList = web.GetList("http://Site/list/AllItem.aspx");
string strLstItemName = oList.Items[idx].Name;
}
在这个例子中, oList.Items[idx]每次都会加载一个SpListItemColliction,比如,如果你的列表有10000个Item,
oList.Items[idx]每次都会加载这10000个Item,这将会消耗不少内存去存这个SpListItemColliction;
using(SPSite site = new SPSite(strSite))
{
{
}
3,SPListItem in event handlers
override void ItemAdded(SPItemEventProperties properties)
{
SPList oList = oWeb.Lists[properties.ListId];
}
在这种情况下,我们多余的装载对象消耗了APIs,并且将装载一个SpListItemColliction,请看下面的方法:
override void ItemAdded(SPItemEventProperties properties)
}
(SPSite site = new SPSite(strSite))
{
}
using using (SPWeb web = site.OpenWeb())
int iCount = oList.ItemsCount;
ItemsCount是SPList的属性,没有过多的加载Items
5,Items
SPList.SPList.Items[Int32]
| GetItemById(Int32)
| Items.GetItemById(Int32)
| GetItemById(Int32)
|
列表左面的做了额外功,右面高效
以上只代表个人观点,如果你不这么认为,偏要那么用,你的权利
|
|