Partager via


Déclaration d’une classe d’association

Une classe d’association est un type spécial de classe qui définit une relation entre deux autres classes.

La procédure suivante décrit comment créer une classe d’association à l’aide de code MOF.

Pour créer une classe d’association à l’aide du code MOF

  1. Affectez le qualificateur Association à votre classe.

    Bien qu’il soit possible de créer une classe avec des références à des objets ou des classes, l’utilisation du qualificateur Association non seulement indique clairement que votre classe est une classe d’association, mais, en guise de bonne pratique, garantit que votre classe fonctionne pleinement en tant que classe d’association.

  2. Créez deux références dans la classe décrivant les deux instances d’objet que vous souhaitez associer à l’aide du type ref .

    Les références lient les deux objets de l’association en contenant des chemins d’accès aux objets . Bien que cela ne soit pas obligatoire, utilisez également les propriétés de référence en tant que propriétés de clé.

    Bien que vous puissiez créer des références complètes ou relatives à un espace de noms, WMI n’offre qu’une prise en charge limitée des références entre espaces de noms. Plus précisément, seuls les objets définis statiquement peuvent se référencer au-delà des limites de l’espace de noms ; les objets pris en charge dynamiquement ne peuvent pas se référencer.

    Si nécessaire, utilisez les qualificateurs HasClassRef et Classref conjointement avec le type ref d’objet pour référencer une classe.

    WMI prend en charge le fait d’avoir un point de référence ref vers un instance, et l’autre référence d’objet pointant vers une classe. Dans ce cas, votre classe d’association décrit une association qui lie des instances à des classes.

    L’exemple de code suivant décrit la syntaxe de l’utilisation de HasClassRef et Classref avec un type d’objet.

    [HasClassRefs, Association]
    class SomeAssocClass
    {
         [key, classref{ "MyEndpoint", "OtherContainer" }]
         object ref ep1;
         [key] object ref ep2;
    }; 
    

    Dans l’exemple précédent, la référence ep1 peut pointer vers les définitions de classe pour la classe MyEndpoint ou la classe OtherContainer . Notez que même si vous devez taper faiblement la classe référence, vous ne pouvez pas taper faiblement le qualificateur Classref lui-même ; Cela réduirait considérablement l’efficacité du moteur de requête WMI. Le typage faible crée une référence qui peut contenir n’importe quel type de données à l’aide de l’objet mot clé et du type de données ref. Pour utiliser HasClassRef avec succès, vous devez définir les versions de qualificateur appropriées à propager à toutes les instances et sous-classes.

  3. Créez d’autres propriétés si nécessaire.

    L’exemple de code suivant montre que WMI ne prend actuellement pas en charge les classes d’association ayant moins ou plus de deux propriétés de référence.

    [Association : ToInstance] 
    class MyAssocClass
    {
        ClassX ref PathToClassX ;
        ClassY ref PathToClassY ;
    };
    
  4. Lorsque vous avez terminé, compilez votre code MOF avec le compilateur MOF.

    Pour plus d’informations, consultez Compilation de fichiers MOF.

L’exemple de code de l’étape 3 définit la classe d’association MyAssocClass . La classe MyAssocClass définit une relation entre ClassX et ClassY. Les propriétés PathToClassX et PathToClassY contiennent des chemins d’accès d’objet aux instances des classes à associer. Le mot clé ToInstance est l’un des indicateurs de saveur définis par WMI pour fournir des informations sur l’utilisation d’un qualificateur. Le mot clé ToInstance indique que WMI doit propager le qualificateur Association à toutes les instances de la classe d’association. En vérifiant ce qualificateur instance, le logiciel client peut déterminer qu’un instance appartient à une classe d’association, sans avoir à récupérer la définition de classe pour rechercher le qualificateur Association. Pour plus d’informations, consultez Description d’un qualificateur avec une saveur et des références de qualificateur.

Conception de classes MOF (Managed Object Format)