引用(WMI)

MOF ref 关键字描述对象路径并映射到VT_BSTR自动化类型。 对象路径可以是服务器和命名空间的完整路径,也可以是同一命名空间中另一个对象的相对路径。 可以使用 ref 关键字将两个或多个类链接在一起。 WMI 支持两种类型的对象路径,这些路径用于定义 WMI 中的常规路径或特定路径。

ref 关键字的主要用途是减少 WMI 存储库中完全存在的对象的传输时间和编码。 还可以使用 ref 关键字在两个类之间创建关联。 有关详细信息,请参阅 声明关联类。 如果引用的项位于同一 MOF 文件中,请使用别名初始化 ref 值。 有关详细信息,请参阅 创建别名

注意

ref 关键字应用于键属性时,可以按对象字符串值而不是取消引用的值来区分对象引用。

 

MOF 支持弱类型化和强类型化对象路径的概念。 弱类型对象路径指向未指定类的对象,并将 ref 关键字与 OBJECT 关键字一起使用。 强类型对象指向特定类的对象,并使用具有类名的 ref。 以下示例描述弱类型化 RefToAnyClass 引用,该引用可以指向任何类或类实例,以及只能指向 ClassX 类或实例的 RefToClassX 引用:

class MyClass
{
    object ref RefToAnyClass;       // Weakly typed
    ClassX ref RefToClassX;         // Strongly typed
};

以下示例介绍两个实例和一个引用上述实例的关联对象:

#pragma namespace("\\\\.\\root")

instance of __Namespace
{
    Name = "WMI" ;
} ;

#pragma namespace("\\\\.\\root\\WMI")

Class A{
    [key] string aKey;
};

Class C{
    [key] string cKey;
};

// The following class creates an association 
// between the "A" class and the "C" class
    [Association] Class B{
    [key] A ref aRef;
    [Key, Min(1)] C ref cRef;
};

instance of a
{
    aKey = "This is the key for the A class";
};

instance of c
{
    cKey = "This is the key for the c class";
};