Registro de un controlador de eventos

Los controladores de eventos se registran de forma diferente en Windows SharePoint Services 3.0 debido a nuevos conceptos como los tipos de contenido y las características que presenta. Sin embargo, por razones de compatibilidad con versiones anteriores, Windows SharePoint Services 3.0 admite el registro existente de eventos de biblioteca. Las propiedades EventSinkAssembly, EventSinkClass y EventSinkData continúan en funcionamiento y se exponen en la interfaz de usuario.

En Windows SharePoint Services 3.0, hay tres formas fundamentales de registrar un controlador de eventos:

  • A través del modelo de objetos, ya que las clases SPWeb y SPList ahora proporcionan una propiedad EventReceivers a través de la cual se puede obtener acceso a la colección de definiciones de receptor de eventos para el sitio web o lista. Puede agregar nuevos receptores de eventos mediante una llamada al método Add.

  • De forma declarativa por tipo de lista, por ejemplo, para registrar un controlador de eventos para todas las listas de anuncios. En un archivo Feature.xml, puede registrar un controlador de eventos por identificador de plantilla de lista. Cuando se activa la característica contenedora por cada objeto SPWeb, puede registrar el controlador de eventos para cualquier lista del tipo especificado.

  • De forma declarativa por tipo de contenido, por ejemplo, para registrar un controlador de eventos para todos los documentos de un tipo específico. En el código XML para una definición de tipo de contenido, se pueden registrar receptores de eventos.

Nota El ensamblado que contiene el controlador de eventos debe tener un nombre seguro y estar registrado en la memoria caché de ensamblados global (GAC) que se va a usar. No se puede trabajar con ensamblados de receptores de eventos desde la carpeta \_app_bin (unidad_local:\Inetpub\wwwroot\wss\VirtualDirectories\GUID\_app_bin).

Tipos de contenido

Windows SharePoint Services 3.0 presenta el concepto de tipos en el almacén de datos de contenido. En resumen, los tipos de contenido presentan la noción de reutilización para los diseñadores web que trabajan con Windows SharePoint Services. Los diseñadores web tienen ahora la capacidad de crear clases de objetos con definiciones específicas y posible comportamiento asociado, como nombre de tipo, campos, formato, procesos de negocio, retención y control de eventos. Ahora se pueden activar las listas de SharePoint y las bibliotecas para admitir varios tipos de contenido. Cuando se hace esto, se pueden asociar una o más de estas clases a la lista o biblioteca y, por tanto, mejorarla con funcionalidad y comportamiento adicionales. Piense en extender una lista de clientes con un tipo de contenido de contacto. El tipo de contenido de contacto puede proporcionar la lista de clientes con un conjunto de nuevos campos, como nombre de contacto, función, teléfono, etc. y también con nuevo comportamiento.

Ahora se pueden definir controladores de eventos para un tipo de contenido específico. Por ejemplo, se puede definir el tipo de contenido "Cliente" y, en su comportamiento, se pueden definir los metadatos para el controlador de eventos.

Características

Los tipos de contenido se definen mediante una característica. Cuando se define un tipo de contenido con una característica, puede crear dos archivos XML tal y como se muestra a continuación:

  • Feature.xml   Este archivo XML se usa para definir los metadatos para la nueva característica. El siguiente código de ejemplo muestra el ámbito de la característica en el nivel del sitio y define un identificador único para la nueva característica. Mediante el elemento ElementManifests, señala la ubicación del segundo archivo XML que almacena toda la información detallada en la propia característica.

    <?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   Este archivo se usa para definir el ensamblado que encapsula el controlador de eventos, la clase en sí y también un número de secuencia que especifica el orden, si hay varios controladores de eventos asociados a la característica. En el ejemplo siguiente se registran los receptores de eventos para eliminar y agregar elementos.

    <?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>
    

Vea también

Otros recursos

Registros de eventos
Creación de un controlador de eventos básico
Procedimiento para crear una característica de controlador de eventos
Trabajo con características
Tipos de contenido
Introducción a la personalización mediante programación de un sitio web de SharePoint en Visual Studio
Validación de seguridad y realización de envíos para actualizar datos
Concesión de privilegio