参照 (WMI)
MOF ref キーワードは、オブジェクト パスを記述し、VT_BSTR Automation 型にマップします。 オブジェクト パスには、サーバーと名前空間への完全なパス、または同じ名前空間内の別のオブジェクトへの相対パスを指定できます。 ref キーワードを使用して、2 つ以上のクラスをリンクできます。 WMI では、WMI 内で一般的なパスまたは特定のパスを定義するために使用する 2 種類のオブジェクト パスがサポートされています。
ref キーワードの主な目的は、WMI リポジトリ内に完全に存在するオブジェクト間のトランスポート時間とエンコードを短縮することです。 ref キーワードを使用して、2 つのクラス間の関連付けを作成することもできます。 詳細については、「アソシエーション クラス の宣言」を参照してください。 参照先アイテムが同じ MOF ファイル内にある場合は、エイリアスを使用して、ref 値を初期化します。 詳細については、「エイリアスの作成」を参照してください。
手記
ref キー ワードがキー プロパティに適用されている場合、逆参照された値ではなく、オブジェクト文字列値によってオブジェクト参照を区別できます。
MOF では、弱く型指定され、厳密に型指定されたオブジェクト パスの概念がサポートされています。 弱く型指定されたオブジェクト パスは、指定されていないクラスのオブジェクトを指し、OBJECT キーワードを持つ ref キーワードを使用します。 厳密に型指定されたオブジェクトは、特定のクラスのオブジェクトを指し、クラス名 ref を使用します。 次の例では、任意のクラスまたはクラス インスタンスを指すことができる弱く型指定された RefToAnyClass 参照と、ClassX クラスまたはインスタンスのみを指すことができる RefToClassX 参照について説明します。
class MyClass
{
object ref RefToAnyClass; // Weakly typed
ClassX ref RefToClassX; // Strongly typed
};
次の例では、2 つのインスタンスと、前のインスタンスを参照する関連付けオブジェクトについて説明します。
#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";
};