浏览 COM+ 集合层次结构

通过在 COMAdminCatalog 对象上使用 GetCollection 方法,可以轻松检索某些集合。 此方法检索“顶级”集合;也就是说,一个集合(如应用程序)它独立存在并且是唯一的,在逻辑上不包含在另一个集合下。

然而,许多集合在逻辑上被归入另一个集合,因为它们包含的元素是某个更大结构的一部分。 例如,Components 集合包含或与 Applications 集合相关,因为它包含安装在特定 COM+ 应用程序中的组件,该应用程序本身对应于 Applications 集合中的项。 像这样的相关集合并不是唯一的;每个不同的应用程序都有一个 Components 集合。

因此,集合按层次结构排列,该层次结构自然对应于它们所包含的项目之间的逻辑关系。 可以在 COM+ Administration Collections 中找到集合层次结构的示意图。 对于要使用 COMAdmin 对象配置的许多元素,需要浏览集合层次结构的某个部分以检索适当的项。

这在实践中意味着,如果想在相关的集合中获得一个项目,则需要首先浏览包含集合的所有必要的更高级别。 若要检索相关集合,需要检索与子集合相关的父集合中的特定项。 例如,如果要配置与特定 COM+ 应用程序中的组件相对应的项,则必须执行以下步骤:

  1. 获取 Applications 集合,并填充。
  2. 枚举 Applications 集合的内容,直到找到与正确的 COM+ 应用程序相对应的项。
  3. 获取并填充该特定 COM+ 应用程序的 Components 集合。
  4. 枚举 Components 集合的内容,直到找到与正确的组件相对应的项。

以下 Microsoft Visual Basic 示例演示如何执行前面的步骤:

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 

前面的示例中使用了两种不同的 GetCollection 方法。 第一个示例由 COMAdminCatalog 公开,用于获取顶级集合,在本例中为“应用程序”。 第二个对象由 COMAdminCatalogCollection 公开,用于获取与当前集合相关的集合;通过传递名称“Components”和父对象的 Key 属性值,可以准确指示所需的集合。 Key 属性值通常是唯一标识对象的名称或 GUID;该值在每个集合的文档中标识。

在大多数情况下,需要在集合层次结构中以迭代方式向下获取相关的集合,直到检索到所需的集合。 将采取的步骤遵循相同的通用模型,重复进行。 有关集合的完整列表,请参阅 COM+ Administration Collections

在某些情况下,你可能希望在第二次浏览集合层次结构的路径时使用快捷方法。 只有在缓存了所有插入的 Key 值之后,才能使用此方法。 有关详细信息,请参阅 ICOMAdminCatalog::GetCollectionByQuery

填充 COM+ 集合

查询可用的相关集合

检索 COM+ 目录中的集合