Clase SPEventReceiverDefinition

Clase base abstracta que define las propiedades generales de un receptor de eventos para los elementos de lista, listas, sitios Web y los flujos de trabajo.

Jerarquía de la herencia

System.Object
  Microsoft.SharePoint.Administration.SPAutoSerializingObject
    Microsoft.SharePoint.SPEventReceiverDefinition

Espacio de nombres:  Microsoft.SharePoint
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
Public NotInheritable Class SPEventReceiverDefinition _
    Inherits SPAutoSerializingObject
'Uso
Dim instance As SPEventReceiverDefinition
public sealed class SPEventReceiverDefinition : SPAutoSerializingObject

Comentarios

Se administra un receptor de eventos se producen código que responde a los eventos de SharePoint Foundation siempre que sea específica de desencadenamiento de acciones. Desencadenamiento de SharePoint Foundation los objetos que incluyen los elementos de lista, listas o bibliotecas de documentos. Desencadenamiento de acciones incluye actividades, como agregar, mover o desprotección. Objetos que esperan recibir eventos son hosts de eventos, que son objetos como colecciones de sitios, sitios, listas, los flujos de trabajo o características. eventos de SharePoint Foundation se dividen en dos categorías: eventos de Before y After . En SharePoint Foundation, se denominan eventos Before "... ador" y se denominan After eventos "... ed". eventos de Before se activan en respuesta a una acción del usuario que se produce antes de SharePoint Foundation escribe los datos en la base de datos de contenido. Permiten una implementación realizar comprobaciones de seguridad y validación personalizada, por lo que se producen en el ciclo de vida de procesamiento de solicitudes para admitir la cancelación de la acción del usuario. Todos los receptores de eventos de Before son sincrónicos, y se bloquea el flujo de ejecución del subproceso de trabajo hasta que se complete el controlador de eventos. eventos de After tienen controladores de eventos que se ejecuten después de que SharePoint Foundation confirma la acción del usuario mediante la escritura de datos en la base de datos de contenido. After eventos no admiten la cancelación de la acción del usuario. Hay dos tipos de procesamiento de los eventos que puede producirse cuando se produce un evento After : sincrónico y asincrónico. Procesamiento sincrónico proporciona la capacidad de ejecutar el evento en el mismo subproceso antes de enviar la respuesta de Web en el explorador. Receptores de eventos asincrónicos se procesan mediante un subproceso independiente, por lo que el procesamiento no bloquea el flujo de ejecución de código. Se inicia el subproceso de trabajo independiente para el procesamiento asincrónico por métodos que residen en las clases que no sea la clase SPEventReceiverDefinition .

Utilice la propiedad EventReceivers de la clase SPContentType, SPFile, SPList, SPSite, SPWebo SPWorkflow para obtener la colección de receptores de eventos registrados para el objeto determinado Microsoft SharePoint Foundation . Una vez que tenga una referencia a la colección de receptor de eventos (de tipo SPEventReceiverDefinitionCollection), se puede usar para agregar una nueva definición de receptor de eventos o recuperar una existente. Utilice el método Add() para crear un nuevo objeto de evento SPEventReceiverDefinition . A continuación, establezca las propiedades diferentes que componen la definición y a continuación, llame al método Update() para guardar la definición del receptor de eventos.

Utilice un indizador para obtener una definición de receptor de evento único de la colección. Por ejemplo, si la colección se asigna a una variable denominada collEventReceiverDefinitions, use collEventReceiverDefinitions[index] en C# o collEventReceiverDefinitions(index) en Visual Basic. NET, donde index es el número de índice de la definición de la colección o el GUID de la definición.

Ejemplos

En el siguiente ejemplo utiliza a los miembros de la clase SPEventReceiverDefinition para registrar un receptor de eventos sincrónicos ItemAdding para la lista de contactos de un sitio Web especificado.

string listName = "Contacts";
string siteURL = "https://Server/Site";
string receiverName = "Contacts Event Receiver";
int sequenceNumber = 2001;
string assemblyFullName = "Assembly_Name, Version=1.0.1777.23493, Culture=neutral, PublicKeyToken=94de0004b6e3fcc5";
string assemblyClassName = "Assembly_Name.Class_Name";
string receiverData = "Data";

SPList list = new SPSite(siteURL).OpenWeb().Lists[listName];
SPEventReceiverDefinitionCollection eventReceivers = list.EventReceivers;

using(SPSite site = new SPSite(siteURL))
{ 
   using (SPWeb web = site.OpenWeb()) 
   {
      SPList list = new SPSite(siteURL).OpenWeb().Lists[listName]; 
      SPEventReceiverDefinitionCollection eventReceivers =
         list.EventReceivers;

      SPEventReceiverDefinition eventReceiver = eventReceivers.Add();
      eventReceiver.Name = receiverName;
      eventReceiver.Synchronization =
         SPEventReceiverSynchronization.Synchronous; 
      eventReceiver.Type = SPEventReceiverType.ItemAdded;
      eventReceiver.SequenceNumber = sequenceNumber; 
      eventReceiver.Assembly = assemblyFullName ;
      eventReceiver.Class = assemblyClassName ;
      eventReceiver.Data = receiverData ;

      eventReceiver.Update();
   }
}
Dim listName As String = "Contacts"
Dim siteURL As String = "https://Server/Site"
Dim receiverName As String = "Contacts Event Receiver"
Dim sequenceNumber As Integer = 2001
Dim assemblyFullName As String = "Assembly_Name, Version=1.0.1777.23493, Culture=neutral, PublicKeyToken=94de0004b6e3fcc5"
Dim assemblyClassName As String = "Assembly_Name.Class_Name"
Dim receiverData As String = "Data"

Dim list As SPList = New SPSite(siteURL).OpenWeb().Lists(listName)
Dim eventReceivers As SPEventReceiverDefinitionCollection = list.EventReceivers

Using site As New SPSite(siteURL)
   Using web As SPWeb = site.OpenWeb()
     Dim list As SPList = New SPSite(siteURL).OpenWeb().Lists(listName)
     Dim eventReceivers As SPEventReceiverDefinitionCollection = list.EventReceivers

     Dim eventReceiver As SPEventReceiverDefinition = eventReceivers.Add()
     eventReceiver.Name = receiverName
     eventReceiver.Synchronization = SPEventReceiverSynchronization.Synchronous
     eventReceiver.Type = SPEventReceiverType.ItemAdded
     eventReceiver.SequenceNumber = sequenceNumber
     eventReceiver.Assembly = assemblyFullName
     eventReceiver.Class = assemblyClassName
     eventReceiver.Data = receiverData

     eventReceiver.Update()
   End Using
End Using

Seguridad para subprocesos

Los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para los subprocesos.

Vea también

Referencia

Miembros SPEventReceiverDefinition

Espacio de nombres Microsoft.SharePoint

SPEventType