Регистрация получателей событий SharePoint, которые уже зарегистрированы - PullRequest
1 голос
/ 27 августа 2009

Я пишу веб-часть против списка. Первое, что я делаю в веб-части, это проверяю, что мои пользовательские получатели событий зарегистрированы в списке. Если нет, я регистрирую программно.

Я заметил, что если я пытаюсь зарегистрировать событие, которое уже зарегистрировано, я не получаю ошибок и никаких «дополнительных» событий не регистрируется.

У меня такой вопрос: будет ли эффективнее регистрировать события каждый раз при загрузке веб-части, а не выполнять итерацию по каждому событию в списке получателей событий и сравнивать, чтобы увидеть, есть ли каждый из моих получателей событий? *

Редактировать

О предложениях по сумке недвижимости. Подумав немного больше об этом, это не будет возможным решением. Причина, по которой я «проверяю» наличие получателей, заключается в том, что у нас есть сторонние веб-части, прикрепленные к одному и тому же списку. В прошлом они фактически не регистрировали наших пользовательских приемников. Установка флага в пакете свойств просто даст мне знать, что я проверил один раз, но не скажет мне, будут ли они удалены другим.

Ответы [ 2 ]

2 голосов
/ 27 августа 2009

Код, который SharePoint использует для обновления коллекции получателей событий, запутан, поэтому точно знать это невозможно.Я полагаю, что первый шаг - это проверка, похожая на то, что вы делаете вручную.Я склонен идти к тому, что проще всего, пока вы не определите, что производительность является проблемой, и в этом случае я бы установил флажок в списке свойств RootFolder списка.

2 голосов
/ 27 августа 2009

Я не уверен, что это лучший подход. Я видел код, который делает что-то похожее на ваше требование. Что он делает, так это то, что после добавления EventHandler они сохраняют флаг в пакете свойств SPWeb. В следующий раз, когда вы просто проверяете пакет свойств на наличие флага, не регистрируйте обработчик событий. Обратитесь по этой ссылке для получения дополнительной информации о пакете недвижимости. Последнее замечание: вам может потребоваться больше разрешений для установки значения свойства пакета в SPWeb

...