使用 SharePoint Features.xml 绑定事件处理程序
上次修改时间: 2010年4月9日
适用范围: SharePoint Foundation 2010
可使用 SharePoint 功能为 Microsoft SharePoint Foundation 2010 中的特定内容类型定义事件处理程序。例如,可定义名为"Customer"的内容类型,在客户行为的定义中,可定义相关联的事件处理程序的元数据。
使用 SharePoint 功能
可使用 SharePoint 功能定义内容类型。在使用功能定义内容类型时,会创建两个 XML 文件,如下所述:
Feature.xml 可使用此 XML 文件定义新功能的元数据。下面的示例代码在网站级别设置功能范围,并为新功能定义唯一标识符。使用 ElementManifests 元素时,它会指向存储有关功能本身的所有详细信息的第二个 XML 文件的位置。
<?xml version="1.0" encoding="utf-8"?> <Feature Scope="Web" Title="Simple Event Handler Registration" Id="A6B8687A-3200-4b01-AD76-09E8D163FB9A" xmlns="https://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementManifest Location="elements.xml"/> </ElementManifests> </Feature>
Elements.xml 如果多个事件处理程序与该功能相关联,则可使用此文件定义封装事件处理程序、类本身和指定顺序的序列号的程序集。以下示例演示如何绑定响应删除和添加列表项的事件的事件接收器。
<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="https://schemas.microsoft.com/sharepoint/"> <Receivers ListTemplateId="104"> <Receiver> <Name>MyEventHandlers</Name> <Type>ItemDeleting</Type> <SequenceNumber>10000</SequenceNumber> <Assembly>MyEventHandlers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4358f2a5344ff0dc</Assembly> <Class>MyEventHandlers.SimpleEventHandler</Class> <Data></Data> <Filter></Filter> </Receiver> <Receiver> <Name>MyEventHandlers</Name> <Type>ItemAdded</Type> <SequenceNumber>10000</SequenceNumber> <Assembly>MyEventHandlers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4358f2a5344ff0dc</Assembly> <Class>MyEventHandlers.SimpleEventHandler</Class> <Data></Data> <Filter></Filter> </Receiver> </Receivers> </Elements>
关于内容类型
内容类型是 SharePoint Foundation 数据存储中的可重用构建基块。内容类型通常将一个或多个事件接收器作为其 XML 定义的一部分。例如,如果将内容类型绑定到目标列表,则会在该目标列表上注册该内容类型中包含的事件接收器(或将这些事件接收器绑定到该目标列表)。
警告 |
---|
事件和事件接收器的词汇有时会互换使用术语"注册"和"绑定"。当本文档提到"绑定"事件接收器时,有时可能是指"注册"事件接收器。这两个术语含义相同。 |
Windows SharePoint Services 3.0 在数据存储中引入了内容类型这一概念。简而言之,内容类型引入了可重用性的概念。通过使用内容类型,可创建具有特定定义的对象类和可能关联的行为(如类型名称、字段、格式、业务流程、保留、审计和事件处理)。
还可激活 SharePoint 列表和库以支持多个内容类型。这样做可将这些类中的一个或多个类附加到列表或库,并以这种方式对其进行扩展,以使其具有其他功能和行为。考虑扩展"联系人"内容类型的"客户"列表。"联系人"内容类型可向"客户"列表提供一组新字段(如"联系人姓名"、"职位"、"电话"等),以及新行为。
如果需要将事件处理程序绑定到特定列表或库,或为一组特定列表或库绑定事件处理程序,则通常可在"功能"级别执行此操作。但您还可通过使用相应对象本身上的 EventReceivers 属性来执行此操作(例如在内容类型或列表对象上,通过分别使用 EventReceivers、EventReceivers 来实现此目的)。
对于列表和库,功能是一个基本 SharePoint Foundation 概念,表示特定的协作应用程序标记语言 (CAML) 部分,这些部分以前全部融合在一个文件(Schema.xml 或 Onet.xml)中。这些 CAML 部分现在是独立的,这意味着您可以在不同的位置重复使用它们。现在,您可以使用 SharePoint 功能来创建列表的结构和字段定义。
关于绑定事件处理程序,您可以使用功能这一概念将程序集绑定到一个特定列表或库(通过指定列表或库的 GUID),或为特定类型的列表或库(例如所有文档库或所有表单库)绑定程序集。可以通过创建两种相同类型的 XML 文件(Feature.xml 和 Element.xml)来定义功能,如绑定 SharePoint Foundation 事件处理程序中所述。