在事件接收器中使用对象
来源:互联网 发布:淘宝开店软件排行榜 编辑:程序博客网 时间:2024/06/05 08:23
不要在事件接收器内实例化 SPWeb、SPSite、SPList 或 SPListItem 对象。实例化这些对象而非使用通过事件属性传递的实例的事件接收器可能会导致以下问题:
大量额外的数据库往返(一次写入操作会导致在每个事件接收器中出现多达 5 次的额外往返)。
对这些实例调用 Update 方法会导致在其他注册的事件接收器中的后续 Update 调用失败。
不良的编码实践
在事件接收器内安装一个 SPSite 对象
public override void ItemDeleting(SPItemEventProperties properties)
{
using (SPSite site = new SPSite(properties.WebUrl))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists[properties.ListId];
SPListItem item = list.GetItemByUniqueId(properties.ListItemId);
// Operate on an item.
}
}
}
良好的编码实践
使用 SPItemEventProperties
// Retrieve SPWeb and SPListItem from SPItemEventProperties instead of
// from a new instance of SPSite.
SPWeb web = properties.OpenWeb();
// Operate on the SPWeb object.
SPListItem item = properties.ListItem;
// Operate on an item.
如果不从 SPItemEventProperties 中检索 SPWeb、SPSite、SPList 或 SPListItem 对象,而是在一个事件接收器中实例化这些对象,当对这些新实例调用 Update 时,则必须使用 SPEventPropertiesBase 的适当子类(例如 SPItemEventProperties.InvalidateListItem 或 SPItemEventProperties.InvalidateWeb)中的 Invalidate 方法清除它。
- 在事件接收器中使用对象
- 在 SharePoint Foundation 2010 中使用事件接收器
- 在.net remoting中使用自定义加密接收器
- 事件接收器的实现
- 11.MFC中实现可连接对象和接收器
- 12.ATL中实现可连接对象和接收器
- 在内核下使用事件对象KeInitializeEvent
- Android 中动态广播接收器和静态广播接收器的使用
- 在广播接收器中显示对话框失败,并退出程序
- 在广播接收器中启动活动和弹出对话框
- 在对象中使用定时器
- VC++实现COM事件接收器
- 事件接收器的最佳做法
- 使用广播接收器
- 广播接收器的使用
- 广播接收器的使用
- 在WebService中使用Timer事件
- 在WPF中使用鍵盤組合事件
- Java参数传递方式总结
- 输出编码为utf-8时js乱码的解决方法
- Java参数传递方式总结
- Java参数传递方式总结
- c# 索引与迭代器 简单示例
- 在事件接收器中使用对象
- CLR(公共语言运行时)到底藏在哪?
- c# timerCallback小例
- 黑马程序员:构造方法的重载
- 也谈使用ASP.NET上传Word文件至服务器,并转成HTML。
- 重载与重写区别
- 111
- Flex4.0+pureMVC+JAVA
- Web系统集成OCS在线状态功能