Referenser (WMI)
Nyckelordet MOF ref beskriver en objektsökväg och mappar till en VT_BSTR Automation-typ. Objektsökvägen kan antingen vara en fullständig sökväg till en server och ett namnområde eller en relativ sökväg till ett annat objekt i samma namnområde. Du kan använda ett referens nyckelord för att länka ihop två eller flera klasser. WMI stöder två typer av objektsökvägar som används för att definiera allmänna eller specifika sökvägar i WMI.
Huvudsyftet med referens nyckelord är att minska transporttiden och kodningen mellan objekt som finns helt i WMI-lagringsplatsen. Du kan också använda referens nyckelord för att skapa en association mellan två klasser. Mer information finns i Deklarera en associationsklass. Om det refererade objektet finns i samma MOF-fil använder du ett alias för att initiera värdet referens. Mer information finns i Skapa ett alias.
Not
När en referens nyckelord tillämpas på en nyckelegenskap kan du skilja objektreferenser från objektsträngsvärdet i stället för det avrefererade värdet.
MOF stöder begreppet en svagt typad och starkt typad objektsökväg. En svagt skriven objektsökväg pekar på ett objekt i en ospecificerad klass och använder referens nyckelord med nyckelordet OBJECT. Ett starkt skrivet objekt pekar på ett objekt i en specifik klass och använder referens med klassnamnet. I följande exempel beskrivs en RefToAnyClass referens som kan peka på vilken klass eller klassinstans som helst och en referens RefToClassX som bara kan peka på en ClassX- klass eller instans:
class MyClass
{
object ref RefToAnyClass; // Weakly typed
ClassX ref RefToClassX; // Strongly typed
};
I följande exempel beskrivs två instanser och ett associationsobjekt som refererar till tidigare instanser:
#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";
};