Hivatkozások (WMI)
Az MOF ref kulcsszava egy objektum elérési útját írja le, és egy VT_BSTR Automation-típusra képez le. Az objektum elérési útja lehet egy kiszolgáló és egy névtér teljes elérési útja, vagy egy relatív elérési út egy másik objektumhoz ugyanabban a névtérben. Egy ref billentyűszóval összekapcsolhat két vagy több osztályt. A WMI kétféle objektumútvonalat támogat, amelyek a WMI-ben általános vagy meghatározott elérési utak definiálására használhatók.
A ref kulcsszava fő célja a teljes mértékben a WMI-adattárban létező objektumok közötti átviteli idő és kódolás csökkentése. A ref kulcsszavat is használhatja a két osztály közötti társítás létrehozásához. További információ: Társítási osztály deklarálása. Ha a hivatkozott elem ugyanabban az MOF-fájlban található, használjon aliast a ref értékének inicializálásához. További információ: Aliaslétrehozása.
Jegyzet
Ha egy újraf kulcsszavat alkalmaz egy kulcstulajdonságra, az objektumhivatkozásokat az objektumsztring értéke alapján különböztetheti meg a dereferens érték helyett.
Az MOF támogatja a gyengén gépelt és erősen gépelt objektumútvonalak fogalmát. A gyengén beírt objektum elérési útja egy meghatározatlan osztály objektumára mutat, és a ref kulcsszót használja az OBJECT kulcsszóval. Egy erősen gépelt objektum egy adott osztály objektumára mutat, és újraf használ az osztály nevével. Az alábbi példa egy gyengén beírt RefToAnyClass hivatkozást ír le, amely bármely osztályra vagy osztálypéldányra mutathat, valamint egy RefToClassX hivatkozást, amely csak egy ClassX osztályra vagy példányra mutathat:
class MyClass
{
object ref RefToAnyClass; // Weakly typed
ClassX ref RefToClassX; // Strongly typed
};
Az alábbi példa két példányt és egy társításobjektumot ír le, amelyek az előző példányokra hivatkoznak:
#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";
};