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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top