Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os dados da assinatura residem no catálogo com+ da assinatura. Uma assinatura pode ser criada usando a ferramenta administrativa dos Serviços de Componentes ou programaticamente usando a interface ICOMAdminCatalog::InstallComponent.
A coleção SubscriptionsForComponent é usada para adicionar, excluir ou alterar informações relativas às assinaturas. A coleção SubscriptionsForComponent é uma coleção filho para um componente. Para adicionar uma assinatura, obtenha a coleção SubscriptionsForComponent do componente e use o método Add para adicionar uma entrada à coleção. Para configurar as várias propriedades do objeto de assinatura, use a propriedade Value. Para salvar as alterações, use SaveChanges no objeto de coleção SubscriptionsForComponent.
Você também pode usar a ferramenta de administração dos Serviços de Componentes para modificar algumas, mas não todas, das propriedades da assinatura. As assinaturas especificam as seguintes informações:
- Identidade e localização do assinante
- Método de entrega
- Métodos de evento a serem entregues
- Objeto de classe de evento e propriedade PublisherID de um componente de classe de evento do qual o assinante deseja receber eventos
As assinaturas existem independentemente de objetos de classe de evento. Você pode desabilitar uma assinatura definindo a propriedade Habilitada como False. Uma assinatura desabilitada não é chamada por EVENTOS COM+.
Os três tipos de assinaturas são os seguintes:
-
Persistente
-
As assinaturas persistentes residem no catálogo COM+ e são independentes do tempo de vida do assinante. Assinaturas persistentes sobrevivem a uma reinicialização do sistema. Geralmente, uma assinatura persistente é criada quando um aplicativo é instalado no computador de um assinante e removido quando o aplicativo é removido. Depois que uma assinatura persistente é criada, os Eventos COM+ ativam o assinante sempre que um evento deve ser entregue a ele.
Quando um editor instancia e faz uma chamada em uma classe de evento objeto, o objeto procura todas as assinaturas persistentes no catálogo COM+ e cria uma nova instância de cada objeto. O processo de criação pode ser direto ou por meio de um moniker para componentes enfileirados. Especifique o objeto do assinante pela propriedade SubscriberMoniker da assinatura. Os objetos de assinante criados por uma assinatura persistente são sempre liberados após cada chamada de evento.
-
transitório
-
Para assinaturas transitórias, você pode usar a coleção TransientSubscriptions, cujo objeto pai é o objeto de catálogo raiz. Assinaturas transitórias solicitam um evento para um objeto de assinante específico que já existe. As assinaturas transitórias são armazenadas no catálogo COM+, mas a assinatura é excluída se o sistema de eventos ou o sistema operacional for interrompido. Ao contrário das assinaturas persistentes, as assinaturas transitórias são vinculadas a um objeto específico e são armazenadas apenas no sistema de eventos. As assinaturas transitórias podem ser mais eficientes do que as assinaturas persistentes, mas você deve gerenciar seus ciclos de vida do objeto. Para obter informações sobre como registrar uma assinatura transitória, consulte Registrando uma assinatura transitória.
-
por usuário
-
As assinaturas por usuário só podem fornecer eventos quando o assinante estiver conectado ao computador do sistema de eventos. Quando o assinante faz logon, o sistema de eventos habilita todas as assinaturas nas quais o sinalizador PerUser é definido como VERDADEIRO e UserName está definido como o nome do usuário que está conectado. Quando o assinante faz logoff, as assinaturas são desabilitadas.
As assinaturas por usuário só são efetivas quando o publicador e o assinante estão no mesmo computador. Logon e logoff são detectados somente no computador do editor, não no computador no qual o objeto do assinante reside.
O sistema de eventos usa meta-eventos para notificar os assinantes interessados sempre que os objetos ou assinaturas da classe de evento forem criados, modificados ou removidos. Para receber meta-eventos do sistema de eventos, os aplicativos devem criar uma assinatura que resida no computador do sistema de eventos e que especifique a ID da interface de disparo (IID_IEventObjectChange).
Tópicos relacionados