Distribuire il ricevitore evento senza associarsi con qualsiasi elenco
-
10-12-2019 - |
Domanda
Ho un ricevitore per eventi che ho sviluppato con Visual Studio che voglio implementare.Ma in questo caso voglio implementarlo senza associarlo con qualsiasi elenco.(Aggiungo il ricevitore evento a una lista specifica in seguito tramite PowerShell.)
So che se ho impostato il Scope
in Site
, il ricevitore spazzerà per tutti gli elenchi e le librerie.E so che se ho impostato il Scope
in Web
e fornisci un valore per ListUrl
, si collegherà solo all'elenco specificato.
Tuttavia, sembra che se imposti il Scope
a Web
e non specificare un ListUrl
, agisce lo stesso di Site
e si lega a tutto.Ecco il mio codice
<?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>
.
C'è un modo per implementare e attivare il ricevitore senza essere legato a nulla?
Soluzione
Distribuisci il ricevitore evento e non attivare la funzione. Il file degli elementi si collega solo il ricevitore dell'evento all'elenco quando viene attivata la funzione.Allega il ricevitore dell'evento all'elenco dalla tua PowerShell in seguito.
Altri suggerimenti
C'è un'altra opzione Come aggiungere il ricevitore evento a un elenco specifico - Aggiungere il ricevitore dell'evento al tipo di contenuto.
Passaggi:
- .
- Crea il tipo di contenuto personalizzato per una lista
- Aggiungi il ricevitore dell'evento al tipo di contenuto
- Aggiungi il tipo di contenuto a un elenco specifico per registrare l'evento
Ricevitore
In tal caso, sarai in grado di controllare su quale lista dovrebbe essere registrato un ricevitore di eventi.
Si prega di fare riferimento a un grande articolo walkthrough 3 - sviluppando un ricevitore di eventi per un tipo di contenuto per un ulteriore dettaglio.
Nel tuo caso non hai bisogno di una funzionalità.
Tutto ciò che serve è una biblioteca di classe con la classe del ricevitore di eventi, firmare il montaggio e distribuirlo su GAC.Quindi con PowerShell registra il ricevitore dell'evento per l'elenco desiderato.
Che ne dici di allegarsi a un elenco fittizio che non esiste effettivamente nel web e quindi in seguito allegandolo all'elenco effettivo utilizzando PowerShell.