参考 (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";
};