Partager via


Références (WMI)

Le mot clé de référence MOF décrit un chemin d’accès d’objet et correspond à un type VT_BSTR Automation. Le chemin d’accès de l’objet peut être un chemin d’accès complet à un serveur et un espace de noms, ou un chemin d’accès relatif à un autre objet dans le même espace de noms. Vous pouvez utiliser un mot clé ref pour lier au moins deux classes. WMI prend en charge deux types de chemins d’accès d’objet, qui utilisent pour définir des chemins généraux ou spécifiques dans WMI.

L’objectif main du mot clé ref est de réduire le temps de transport et l’encodage entre les objets qui existent entièrement dans le référentiel WMI. Vous pouvez également utiliser le mot clé ref pour créer une association entre deux classes. Pour plus d’informations, consultez Déclarer une classe d’association. Si l’élément référencé se trouve dans le même fichier MOF, utilisez un alias pour initialiser la valeur ref . Pour plus d’informations, consultez Création d’un alias.

Notes

Lorsqu’un mot clé ref est appliqué à une propriété de clé, vous pouvez distinguer les références d’objet par la valeur de chaîne de l’objet plutôt que par la valeur déréférencée.

 

MOF prend en charge le concept d’un chemin d’objet faiblement typé et fortement typé. Un chemin d’accès d’objet faiblement typé pointe vers un objet d’une classe non spécifiée et utilise le mot clé ref avec le mot clé OBJECT. Un objet fortement typé pointe vers un objet d’une classe spécifique et utilise ref avec le nom de la classe. L’exemple suivant décrit une référence RefToAnyClass faiblement typée qui peut pointer vers n’importe quelle classe ou instance de classe, et une référence RefToClassX qui peut pointer uniquement vers une classe ClassX ou un instance :

class MyClass
{
    object ref RefToAnyClass;       // Weakly typed
    ClassX ref RefToClassX;         // Strongly typed
};

L’exemple suivant décrit deux instances et un objet d’association qui référence les instances précédentes :

#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";
};