Pregunta

Tengo un receptor de eventos que desarrollé con Visual Studio y quiero implementar.Pero en este caso quiero implementarlo sin asociarlo a ninguna lista.(Agrego el receptor de eventos a una lista específica más adelante a través de PowerShell).

Sé que si configuro el Scope a Site entonces el receptor disparará para todas las listas y bibliotecas.Y sé que si configuro el Scope a Web y proporcionar un valor para ListUrl entonces solo se vinculará a la lista especificada.

Sin embargo, parece que si configuro el Scope a Web y no especificar un ListUrl, actúa igual que Site y se une a todo.Aquí está mi código.

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Receivers Scope="Web">
    <Receiver>
      <Name>AutoNumberDocumentItemAdded</Name>
      <Type>ItemAdded</Type
      <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
      <Class>ArticleManagementWorkflow.AutoNumberDocument.AutoNumberDocument</Class>
      <SequenceNumber>10000</SequenceNumber>
      <Synchronization>Synchronous</Synchronization>
    </Receiver>
  </Receivers>
</Elements>

¿Hay alguna forma de desplegar y activar el receptor sin que esté vinculado a nada?

¿Fue útil?

Solución

Implemente el receptor de eventos y no active la función. El archivo de elementos solo adjunta el receptor de eventos a la lista cuando la función está activada.Adjunte el receptor de eventos a la lista desde su PowerShell luego.

Otros consejos

Hay otra opción para agregar el receptor de eventos a una lista específica: agregar el receptor de eventos al tipo de contenido.

Pasos:

  • Crear un tipo de contenido personalizado para una lista
  • Agregue el receptor de eventos al tipo de contenido
  • Agregue el tipo de contenido a una lista específica para registrar el receptor de eventos

En ese caso usted podrá controlar en qué Lista debe registrarse un Receptor de Eventos.

Por favor consulte un gran artículo. Tutorial 3: Desarrollo de un receptor de eventos para un tipo de contenido para más detalles.

En su caso, no necesita una función.
Todo lo que necesita es una biblioteca de clases con su clase de receptor de eventos, firmar el ensamblaje e implementarlo en GAC.Luego, con PowerShell registre el receptor de eventos para la lista que desee.

¿Qué tal si lo adjuntamos a una lista ficticia que en realidad no existe en la web y luego lo adjuntamos a la lista real usando Powershell?

Licenciado bajo: CC-BY-SA con atribución
scroll top