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