Развертывание приемника событий без привязки к какому-либо списку
-
10-12-2019 - |
Вопрос
У меня есть приемник событий, который я разработал с помощью Visual Studio и хочу развернуть.Но в данном случае я хочу развернуть его, не связывая ни с каким списком.(Я добавляю приемник событий в определенный список позже через PowerShell.)
Я знаю, что если я установлю Scope
к Site
тогда приемник сработает для всех списков и библиотек.И я знаю, что если я установлю Scope
к Web
и укажите значение для ListUrl
тогда он будет привязан только к указанному списку.
Однако кажется, что если я установлю Scope
к Web
и не указывайте ListUrl
, он действует так же, как Site
и привязывается ко всему.Вот мой код
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Receivers Scope="Web">
<Receiver>
<Name>AutoNumberDocumentItemAdded</Name>
<Type>ItemAdded</Type
<Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
<Class>ArticleManagementWorkflow.AutoNumberDocument.AutoNumberDocument</Class>
<SequenceNumber>10000</SequenceNumber>
<Synchronization>Synchronous</Synchronization>
</Receiver>
</Receivers>
</Elements>
Есть ли способ развернуть и активировать приемник, не привязывая его ни к чему?
Решение
Разверните приемник событий и не активируйте функцию. Файл elements присоединяет приемник событий к списку только при активации функции.После этого подключите приемник событий к списку из вашей PowerShell.
Другие советы
Есть еще один вариант, как добавить Приемник событий в определенный Список — добавить Приемник событий в Тип контента.
Шаги:
- Создайте собственный тип контента для списка
- Добавьте приемник событий к типу контента
- Добавить тип контента в конкретный список, чтобы зарегистрировать приемник событий
В этом случае вы сможете контролировать, в каком списке должен быть зарегистрирован приемник событий.
Пожалуйста, ознакомьтесь с отличной статьей Пошаговое руководство 3. Разработка приемника событий для типа контента для более подробной информации.
В вашем случае вам не нужна функция.
Все, что вам нужно, — это библиотека классов с вашим классом приемника событий, подписать сборку и развернуть ее в GAC.Затем с помощью PowerShell зарегистрируйте приемник событий для нужного списка.
Как насчет того, чтобы прикрепить его к фиктивному списку, которого на самом деле не существует в Интернете, а затем прикрепить его к реальному списку с помощью Powershell.