使用 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 属性来执行此操作(例如在内容类型或列表对象上,通过分别使用 EventReceiversEventReceivers 来实现此目的)。

对于列表和库,功能是一个基本 SharePoint Foundation 概念,表示特定的协作应用程序标记语言 (CAML) 部分,这些部分以前全部融合在一个文件(Schema.xml 或 Onet.xml)中。这些 CAML 部分现在是独立的,这意味着您可以在不同的位置重复使用它们。现在,您可以使用 SharePoint 功能来创建列表的结构和字段定义。

关于绑定事件处理程序,您可以使用功能这一概念将程序集绑定到一个特定列表或库(通过指定列表或库的 GUID),或为特定类型的列表或库(例如所有文档库或所有表单库)绑定程序集。可以通过创建两种相同类型的 XML 文件(Feature.xml 和 Element.xml)来定义功能,如绑定 SharePoint Foundation 事件处理程序中所述。

请参阅

任务

如何:创建事件处理程序功能

概念

使用功能

事件注册

示例:创建列表项事件处理程序

使用功能

安全验证并进行发布以更新数据

特权提升

其他资源

内容类型