2016-08-04 26 views
3

我在<registerPageEvent>管道中有一个处理器,它检查一个事件是否被重复并删除它。它在7.2上运行良好,但我必须升级到8.1 Update 3,并且找不到一种方法来删除已添加的页面事件。 这是可能的,我该怎么做?从7.2的代码如何删除Sitecore 8.1中的重复页面事件?

海贼王:

Tracker.Visitor.DataSet.PageEvents.Rows.RemoveAt(Tracker.Visitor.DataSet.PageEvents.Count - 1); 

回答

2

无法通过从Sitecore的7.5开始API删除事件。 (唯一的解决方法是使用.NET反射)

即使在7.2中,这样做也不是一个好主意。原因是,当通过API添加事件时,应用了一些内部逻辑 - 例如,该访问的总价值将被重新计算。如果您手动删除事件,则不会触发这些内部操作,因此您的访问数据可能会以不一致的状态结束。

最适合您的方法是在注册您的事件的代码中添加检查 - 只有在事件不是现有事件的重复时才应该注册事件。