Dichiarazione di una classe di associazione

Una classe di associazione è un tipo speciale di classe che definisce una relazione tra due altre classi.

La procedura seguente descrive come creare una classe di associazione usando il codice MOF.

Per creare una classe di associazione usando il codice MOF

  1. Assegnare il qualificatore Association alla classe.

    Anche se è possibile creare una classe con riferimenti a oggetti o classi, l'uso del qualificatore Association non solo rende chiaro che la classe è una classe di associazione, ma, come procedura consigliata, garantisce che la classe funzioni completamente come classe di associazione.

  2. Creare due riferimenti all'interno della classe che descrive le due istanze dell'oggetto da associare usando il tipo ref .

    I riferimenti associano i due oggetti nell'associazione contenente i percorsi agli oggetti . Anche se non è necessario, usare anche le proprietà di riferimento come proprietà chiave.

    Sebbene sia possibile creare riferimenti completi o relativi agli spazi dei nomi, WMI ha solo un supporto limitato per i riferimenti tra spazi dei nomi. In particolare, solo gli oggetti definiti in modo statico possono fare riferimento tra loro attraverso i limiti dello spazio dei nomi; gli oggetti supportati dinamicamente non possono fare riferimento l'uno all'altro.

    Se necessario, usare i qualificatori HasClassRef e Classref insieme al tipo ref dell'oggetto per fare riferimento a una classe.

    WMI supporta la presenza di un punto di riferimento ref a un'istanza e l'altro punto di riferimento dell'oggetto a una classe. In questo caso, la classe di associazione descrive un'associazione che associa le istanze alle classi.

    Nell'esempio di codice seguente viene descritta la sintassi per l'uso di HasClassRef e Classref con un tipo di oggetto .

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

    Nell'esempio precedente, il riferimento ep1 può puntare alle definizioni di classe per la classe MyEndpoint o la classe OtherContainer . Si noti che, anche se è necessario digitare in modo debole la classe di riferimento, non è possibile digitare in modo debole il qualificatore Classref stesso; in questo modo si riduce notevolmente l'efficienza del motore di query WMI. La digitazione debole crea un riferimento che può contenere qualsiasi tipo di dati usando la parola chiave object e il tipo di dati ref . Per usare correttamente HasClassRef, è necessario impostare i tipi di qualificatore pertinenti da propagare a tutte le istanze e sottoclassi.

  3. Creare eventuali altre proprietà in base alle esigenze.

    L'esempio di codice seguente mostra che WMI non supporta attualmente le classi di associazione con meno di due proprietà di riferimento.

    [Association : ToInstance] 
    class MyAssocClass
    {
        ClassX ref PathToClassX ;
        ClassY ref PathToClassY ;
    };
    
  4. Al termine, compilare il codice MOF con il compilatore MOF.

    Per altre informazioni, vedere Compilazione di file MOF.

L'esempio di codice riportato nel passaggio 3 definisce la classe di associazione MyAssocClass . La classe MyAssocClass definisce una relazione tra ClassX e ClassY. Le proprietà PathToClassX e PathToClassY contengono percorsi oggetto per le istanze delle classi da associare. La parola chiave ToInstance è uno dei diversi flag di sapore definiti da WMI per fornire informazioni sull'uso di un qualificatore. La parola chiave ToInstance indica che WMI deve propagare il qualificatore Association a tutte le istanze della classe di associazione. Controllando questo qualificatore di istanza, il software client può determinare che un'istanza appartiene a una classe di associazione, senza dover recuperare la definizione della classe per cercare il qualificatore Association . Per altre informazioni, vedere Descrizione di un qualificatore con un qualificatore eriferimenti.

Progettazione di classi MOF (Managed Object Format)