Implantar o receptor de evento sem associar com qualquer lista
-
10-12-2019 - |
Pergunta
Eu tenho um receptor de evento eu desenvolvidos com o Visual Studio que eu queira implantar.Mas neste caso eu queira implantá-lo sem associá-lo com qualquer lista.(Eu adicionar o receptor de eventos para uma lista específica, mais tarde, através do PowerShell).
Eu sei que se eu definir o Scope
para Site
em seguida, o receptor irá disparar para todas as listas e bibliotecas.E eu sei que se eu definir o Scope
para Web
e fornecer um valor para ListUrl
em seguida, é só ligar para a lista especificada.
No entanto, parece que, se eu definir o Scope
para Web
e não especificar um ListUrl
, ele age mesmo como Site
e se liga a tudo.Aqui é o meu 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>
Existe uma maneira de implantar e ativar o receptor, sem que seja vinculado a alguma coisa?
Solução
Implantar o receptor de evento e não ativar o Recurso.Os elementos de arquivo somente atribui o receptor de eventos para a lista quando o recurso está ativado.Anexar o receptor de eventos a lista de sua powershell depois.
Outras dicas
Existe uma outra opção, como adicionar um Receptor de Evento para uma Lista específica - adicionar o Receptor de Eventos para o Tipo de Conteúdo.
Passos:
- Criar Tipo de Conteúdo personalizado para uma Lista
- Adicionar o Receptor de Eventos para o Tipo de Conteúdo
- Adicionar o Tipo de Conteúdo a uma Lista específica para registrar o Evento Receptor
Nesse caso, você vai ser capaz de controlar em qual Lista de um Receptor de Eventos devem ser registrados.
Por favor, consulte um ótimo artigo Passo a passo 3 – Desenvolvimento de um Receptor de Eventos para um Tipo de Conteúdo para obter mais detalhes.
No seu caso, você não precisa de um recurso.
Tudo o que você precisa é de uma biblioteca de classes com o seu receptor de eventos de classe, assinar o assembly e implantá-lo no GAC.Em seguida, com o PowerShell registrar o receptor de eventos para a lista que você deseja.
Como cerca de anexá-lo a um manequim lista que, na verdade, não existem na web e, em seguida, mais tarde, anexando-o à lista de real usando o Powershell.