如何解决在整个应用程序生命周期中保持相同的SPWeb和SPSite?
| 我们有多个DAL的项目。许多共享点列表,例如反映在C#类中的客户,销售,提供者。我们通过抽象的母类使每个对象实现Idisposable。每次我们实例化一个对象以从列表中获取客户时,调用者代码都需要调用customer.dispose()来处理用于实例化该对象的spweb和spsite: public Customer(int spListItemID):base(LIST_URL)
{
try
{
spli = Liste.GetItemById(spListItemID);
}
catch(ArgumentException)
{
spli = null;
}
}
在构造函数基类中,实例化了spsite和spweb全局变量,并且还具有dispose函数。
我在想:整个共享点应用程序使用相同的spweb和spsite怎么样?我们所有的项目都知道一个可以按照单例模式实例化这些spsite和spweb的项目。而且,我们将使用此spsite和spweb \“ forever \”,永远不会将它们都关闭并为每个对象使用相同的对象,从而在每次实例化对象时都保存打开/关闭过程!
您认为这是一个疯狂的主意,会产生反响吗?我的意思是长时间使用相同的spweb,也就是说服务器打开的时间...这是个坏主意吗?而不是每天为每个实例打开数千个时间来关闭spweb? spweb的生存期有限吗? (这是一个很大的共享点应用程序,上面有很多开发)
解决方法
最大的风险是SPWeb可能会过时。在多用户环境中,可以由另一个用户更改在第一次往返中获取的SPWeb属性(例如-Web标题),但是由于您没有重新实例化,因此您继续使用旧值。只要正确处理它们,就可以创建SPWeb和SPSite的多个实例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。