Чтобы связать приемник событий с определенным типом контента, вы используете элемент XmlDocuments в файле элементов типа содержимого. Вот довольно эксклюзивный отрывок из моей будущей книги "Building the SharePoint User Experience":
И, чтобы уточнить, так как я не вижу XML, который вы пытались опубликовать, вы должны добавить это в объявление типа содержимого в файле elements.xml.
(...)
Установка приемников событий для типов контента с помощью функции
Важно с крепления приемников событий, как мы только что видели, как видно, что нет никакого способа, чтобы связать приемник к типу содержимого, только к шаблону списка.
Нет, нет способов добавить получателей в отдельные списки. Однако, как мы видели в разделе «Разрешения по электронной почте» в главе «Лес списка», мы можем программно добавлять приемники событий с использованием кода. Мы можем использовать тот же метод, чтобы добавить получателей событий к типу контента, но должен быть способ сделать это, используя CAML в функции. После всего этого мы определяем тип контента, как мы увидим далее в этой главе.
Ответ? Приемники событий в типах контента определяются в другом разделе файла элементов. Снова посмотрим на XmlDocuments и третий встроенный приемник типа XmlDocument. Получатель XmlDocument находится в пространстве имен http://schemas.microsoft.com/sharepoint/events. Если вы хотите увидеть приемник XmlDocument в установке SharePoint по умолчанию, поиск файла ctypeswss.xml для типа содержимого 0x010107, в DocumentWorkflowItem:
<XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/events">
<spe:Receivers xmlns:spe="http://schemas.microsoft.com/sharepoint/events">
<Receiver>
<Name>Workflow Library Item Added</Name>
<Type>ItemAdded</Type>
<SequenceNumber>1</SequenceNumber>
<Assembly>Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral,~CCC
PublicKeyToken=71e9bce111e9429c</Assembly>
<Class>Microsoft.SharePoint.Workflow.SPWorkflowLibraryEventReceiver</Class>
<Data />
<Filter />
</Receiver>
… (snipped for space saving purposes
</Receivers>
</XmlDocument>
Примечания В данном примере используется префикс сп: для элемента приемников. Это не обязательно с технической точки зрения, но может добавить ясность в ваш код. Как вы можете видеть, элемент Receiver следует структуре приемника событий обычного элемента, как определено в элементах. Кроме того, конечно, что получатель определен в разделе XmlDocument типа контента.
Привет! Это относится и к SP 2010? Я не могу заставить мои eventreceivers срабатывать, и я уверен, что он был изменен, поскольку вы descibed – Larsi
Как я могу добавить получателя в сборку контента (например, «Папка») с помощью этой техники? – Patric
Папки - это типы контента, такие как что-либо еще, поэтому в определении не было бы иначе. Если у вас есть существующая папка, вам нужно будет прикрепить приемник после факта, но это немного выходит за рамки комментария. Я предлагаю вам задать новый вопрос на sharepoint.stackexchange.com. –