Partilhar via


Navegando na hierarquia de coleção COM+

Algumas coleções você pode recuperar facilmente usando o método GetCollection no objeto COMAdminCatalog. Esse método recupera uma coleção de "nível superior"; ou seja, uma coleção como Applications, que se destaca por si só e que é única e não logicamente subsumida a outra coleção.

Muitas coleções, no entanto, são logicamente subsumidas sob outra coleção porque contêm elementos que fazem parte de alguma estrutura maior. Por exemplo, a coleção Components é subsumida, ou relacionada, à coleção Applications porque contém os componentes instalados em um aplicativo COM+ específico, que corresponde a um item na coleção Applications. Coleções relacionadas como esta não são únicas; há uma coleção Components para cada aplicativo distinto.

Portanto, as coleções são organizadas em uma estrutura hierárquica que corresponde naturalmente às relações lógicas entre os itens que elas contêm. Um diagrama da hierarquia de coleção pode ser encontrado em COM+ Administration Collections. Para muitos dos elementos que você deseja configurar usando os objetos COMAdmin, você precisa navegar por alguma parte da hierarquia da coleção para recuperar o item apropriado.

O que isso significa na prática é que, se você quiser obter um item em uma coleção relacionada, você precisa passar por todo o nível superior necessário, subsumindo coleções primeiro. E para recuperar uma coleção relacionada, você precisa recuperar o item específico na coleção pai à qual a coleção filho está relacionada. Por exemplo, se você deseja configurar um item correspondente a um componente em um aplicativo COM+ específico, você deve executar as seguintes etapas:

  1. Obtenha a coleção Applications e preencha-a.
  2. Enumere o conteúdo da coleção Applications até chegar ao item correspondente ao aplicativo COM+ correto.
  3. Obtenha e preencha a coleção Components para esse aplicativo COM+ específico.
  4. Enumere através do conteúdo da coleção Components até chegar ao item correspondente ao componente correto.

O seguinte exemplo do Microsoft Visual Basic mostra como executar as etapas anteriores:

On Error GoTo My_Error_Handler

Dim Catalog As COMAdminCatalog 
Set Catalog = CreateObject("COMAdmin.COMAdminCatalog")

' Get the Applications collection and populate it.
Dim Applications As COMAdminCatalogCollection 
Set Applications = Catalog.GetCollection("Applications") 
Applications.Populate

' Get the correct application, "My Application".
Dim AppObject As COMAdminCatalogObject 
For Each AppObject in Applications 
    If AppObject.Name = "My Application" Then 
        Exit For 
    End If
Next 

' Get and populate the Components collection for "My Application".
Dim Components As COMAdminCatalogCollection 
Set Components = Applications.GetCollection("Components", AppObject.Key) 
Components.Populate

' Get the correct component, "My Component".
Dim CompObject As COMAdminCatalogObject 
For Each CompObject in Components 
    If CompObject.Name = "My Component" Then 
        Exit For 
    End If
Next 

Dois métodos GetCollection distintos são usados no exemplo anterior. O primeiro é exposto por COMAdminCatalog e é usado para obter uma coleção de nível superior — neste caso, "Aplicativos". O segundo é exposto por COMAdminCatalogCollection e é usado para obter uma coleção relacionada à coleção atual, você indica precisamente qual coleção deseja passando o nome "Components" e o valor da propriedade Key do objeto pai. O valor da propriedade Key geralmente é um nome ou um GUID que identifica exclusivamente o objeto; Esse valor é identificado na documentação de cada coleção.

No caso mais geral, você precisa obter coleções relacionadas iterativamente na hierarquia de coleção até recuperar a coleção desejada. Os passos que você tomaria seguem o mesmo modelo geral, repetidamente. Para obter uma lista completa de coleções, consulte Coleções de administração COM+.

Em alguns casos, convém usar um método de atalho na segunda vez que seguir um caminho pela hierarquia de coleção. Você pode usar esse método somente depois de já ter armazenado em cache todos os valores de chave intervenientes. Para obter detalhes, consulte ICOMAdminCatalog::GetCollectionByQuery.

Preenchendo coleções COM+

Consultando coleções relacionadas disponíveis

Recuperando coleções no catálogo COM+