Freigeben über


Erstellen eines WMI-Alias

Ein Alias in WMI ist ein symbolischer Verweis in einer Klasse oder einer Klasseninstanz, die sich an anderer Stelle in einer MOF-Datei (Managed Object Format) befinden. Der MOF-Compiler verwendet Aliase, um Verweise zwischen Klassen und Instanzen herzustellen. Der Compiler löst Aliase in die Klassen auf, auf die sie verweisen, sodass Aliasnamen im kompilierten Code nicht verfügbar sind. Daher können Clientanwendungen nicht auf Klassen verweisen, die Aliase verwenden.

Hinweis

WMI unterstützt Vorwärtsreferenzierung, aber keine Zirkelbezüge im Rahmen der Aliasverwendung.

 

Der Alias ist nur für den Bereich innerhalb der MOF-Datei gültig, in der Sie den Alias deklarieren. Daher verwenden Sie einen Alias in der Regel als Verknüpfung zu einem langen Objektpfad.

So definieren Sie einen Alias

  1. Fügen Sie der Instanz- oder Klassendeklaration den Ausdruck "as $aliasname" hinzu.
  2. Aliasnamen folgen den gleichen Regeln wie Instanz- und Klassennamen, außer dass Aliasnamen mit einem Dollarzeichen ($) beginnen müssen. Unterstriche können in einem Aliasnamen nach dem Anfangszeichen angezeigt werden.

Im folgenden Codebeispiel wird beschrieben, wie ein Alias in einer Klassendefinition verwendet wird.

class MyClass as $MyClassAlias
{
};
instance of MyClass as $MyInstanceAlias
{
};

In den folgenden Codebeispielen wird beschrieben, wie ein Alias als symbolischer Verweis auf einen Objektpfad verwendet wird. In diesen Beispielen werden zwei Klassen deklariert, um einen Datenträger zu beschreiben: die Disk-Klasse, um den Laufwerkbuchstaben anzugeben, und die DiskRef-Klasse, um den Datenträgerpfad anzugeben. Für die Disk-Klasseninstanz wird ein Alias definiert. Dieser Alias wird als Wert für die PathToDisk-Eigenschaft in der DiskRef-Instanz verwendet.

class Disk {
    [key]  string    DriveLetter;
};

class DiskRef 
{
    [key]  string    MyKey;
    Disk   ref       PathToDisk;
};

instance of Disk as $DiskAlias 
{
    DriveLetter = "c";
};

instance of DiskRef
{
    MyKey      =  "hello";
    PathToDisk = $DiskAlias;
};

Erstellen einer Klasse