Odkazy (WMI)
Klíčové slovo MOF ref popisuje cestu objektu a mapuje se na typ VT_BSTR Automation. Cesta k objektu může být úplná cesta k serveru a oboru názvů nebo relativní cesta k jinému objektu ve stejném oboru názvů. K propojení dvou nebo více tříd můžete použít ref klíčové slovo. Rozhraní WMI podporuje dva typy cest objektů, které slouží k definování obecných nebo specifických cest v rámci rozhraní WMI.
Hlavním účelem klíčového slova ref je zkrátit dobu přenosu a kódování mezi objekty, které existují zcela v úložišti WMI. K vytvoření přidružení mezi dvěma třídami můžete také použít ref klíčové slovo. Další informace naleznete v tématu deklarování třídy přidružení. Pokud se odkazovaná položka nachází ve stejném souboru MOF, použijte alias k inicializaci ref hodnotu. Další informace naleznete v tématu Vytvoření aliasu.
Poznámka
Pokud se u vlastnosti klíče použije ref klíčové slovo, můžete odkazy na objekt odlišit podle hodnoty řetězce objektu namísto hodnoty dereferenced.
MOF podporuje koncept slabě typované a silně typované cesty objektu. Slabě zadaná cesta k objektu odkazuje na objekt nezadané třídy a používá klíčové slovo ref klíčové slovo s klíčovým slovem OBJECT. Objekt silného typu odkazuje na objekt konkrétní třídy a používá ref s názvem třídy. Následující příklad popisuje slabě typovaný RefToAnyClass odkaz, který může odkazovat na libovolnou třídu nebo instanci třídy, a RefToClassX odkaz, který může odkazovat pouze na ClassX třídy nebo instance:
class MyClass
{
object ref RefToAnyClass; // Weakly typed
ClassX ref RefToClassX; // Strongly typed
};
Následující příklad popisuje dvě instance a objekt přidružení, který odkazuje na předchozí instance:
#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";
};