长话短说……我有一个类(在我的示例场景中是一个应用程序页面),它包含对 SPList 的引用。
public partial class ApplicationPage1 : LayoutsPageBase
{
private static SPList _list = GetSPList();
private static SPList GetSPList()
{
try
{
return SPContext.Current.Web.GetList("/Lists/CoreConfiguration");
}
catch (FileNotFoundException)
{
return null;
}
}
protected void BtnRunQuery_OnClick(object sender, EventArgs e)
{
Debug.WriteLine(_list.Author.Name);
}
}
有趣的部分显然是按钮单击事件。因为第一次它总是有效的。也许如果你幸运的话,它会第二次或第三次起作用。但它几乎不会在第四次运行时抛出 NullReferenceException。引发异常的不是列表本身,而是类的一些成员。显然,SPList 对象是死的多于生的。
因此,显然持有对 SPList 的引用并不是一个好主意。这里要遵循的设计模式是每次都去获取列表吗?在每个请求上?