一个不起眼的谜题,但它让我绝对发疯:
我正在 MOSS 中创建自定义信息管理策略。我已经实现了 IPolicyFeature,并且我的策略功能通过配置一个新的 SPItemEventReceiver 很高兴地注册了自己。我的图书馆中的所有新项目都会按应有的方式触发事件,并且一切正常。
IPolicyFeature 还有一个 ProcessListItem 方法,它应该将策略追溯应用到库中已经存在的项目(至少,只要它不断返回,它就应该这样做true
)。除非它没有。它只将该策略应用于图书馆的第一项,我完全不知道为什么。
它似乎没有抛出异常,它确实从处理第一个项目返回 true,我想不出还有什么可以看的。任何人?
编辑:科里的回答,下面,让我走上正轨。其他东西确实失败了——我没有发现是什么,因为我的 windbg-fu 不是它应该是的,但我怀疑它类似于“在迭代时修改集合”。我的代码正在修改传递给 ProcessListItem 的 SPListItem,然后对其调用 SystemUpdate;一旦我更改了代码以便它创建自己的变量(指向完全相同的 SPListItem)并使用它,问题就消失了......