Непонятная головоломка, но она сводит меня с ума:
Я создаю собственную политику управления информацией в MOSS. Я реализовал IPolicyFeature, и моя функция политики успешно регистрируется путем настройки нового SPItemEventReceiver. Все новые элементы в моей библиотеке запускают события, как они должны, и все это прекрасно работает.
IPolicyFeature также имеет метод ProcessListItem, который должен задним числом применять политику к элементам, которые уже были в библиотеке (по крайней мере, он должен делать это до тех пор, пока он продолжает возвращать true
). За исключением того, что это не так. Он применяет политику только к элементу first в библиотеке, и я абсолютно не понимаю, почему.
Кажется, это не исключение, и оно действительно возвращает true при обработке этого первого элемента, и я не могу думать, на что еще обратить внимание. Кто-нибудь?
Редактировать: ответ Кори, приведенный ниже, поставил меня на правильный путь. Что-то еще действительно терпело неудачу - я не выяснил, что, так как мой windbg-fu не тот, каким он должен быть, но я подозреваю, что это было что-то вроде «изменения коллекции, пока она повторяется». Мой код модифицировал SPListItem, который передается в ProcessListItem, а затем вызывал SystemUpdate для него; как только я изменил код так, чтобы он создал свою собственную переменную (указывающую на точно такой же SPListItem) и использовал ее, проблема исчезла ...