Partilhar via


Declarando uma classe de associação

Uma classe de associação é um tipo especial de classe que define uma relação entre duas outras classes.

O procedimento a seguir descreve como criar uma classe de associação usando o código MOF.

Para criar uma classe de associação usando o código MOF

  1. Atribua o qualificador Associação à sua classe.

    Embora seja possível criar uma classe com referências a objetos ou classes, usar o qualificador Associação não apenas deixa claro que sua classe é uma classe de associação, mas, como prática recomendada, garante que sua classe funcione plenamente como uma classe de associação.

  2. Crie duas referências dentro da classe descrevendo as duas instâncias de objeto que você deseja associar usando o ref type.

    As referências ligam os dois objetos na associação contendo caminhos para os objetos. Embora não seja obrigatório, use as propriedades de referência como propriedades chave também.

    Embora você possa criar referências totalmente qualificadas ou relativas ao namespace, o WMI tem suporte limitado apenas para referências entre namespaces. Especificamente, apenas objetos definidos estaticamente podem fazer referência uns aos outros através dos limites do namespace; Os objetos com suporte dinâmico não podem fazer referência uns aos outros.

    Se necessário, use os qualificadores HasClassRef e Classref em conjunto com o object ref type para fazer referência a uma classe.

    WMI suporta ter um ponto de referência ref para uma instância e o outro ponto de referência objeto para uma classe. Nesse caso, sua classe de associação descreveria uma associação que vincula instâncias a classes.

    O exemplo de código a seguir descreve a sintaxe para usar HasClassRef e Classref com um tipo de objeto .

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

    No exemplo anterior, a referência ep1 pode apontar para as definições da classe MyEndpoint ou da classe OtherContainer. Observe que, embora você deva digitar fracamente a classe de referência, não pode digitar fracamente o Classref qualificador em si; fazer isso reduziria drasticamente a eficiência do mecanismo de consulta WMI. Tipagem fraca é criar uma referência que pode conter qualquer tipo de dados usando a palavra-chave objeto e o tipo de dados ref . Para usar com êxito HasClassRef, deves definir as variações de qualificador relevantes para que se propaguem para todas as instâncias e subclasses.

  3. Crie quaisquer outras propriedades conforme necessário.

    O exemplo de código a seguir mostra que o WMI atualmente não oferece suporte a classes de associação com menos ou mais de duas propriedades de referência.

    [Association : ToInstance] 
    class MyAssocClass
    {
        ClassX ref PathToClassX ;
        ClassY ref PathToClassY ;
    };
    
  4. Quando terminar, compile o código MOF com o compilador MOF.

    Para obter mais informações, consulte compilando arquivos MOF.

O exemplo de código na etapa 3 define o MyAssocClass classe de associação. A classe MyAssocClass define uma relação entre a ClassX e a ClassY. As propriedades PathToClassX e PathToClassY contêm caminhos de objeto para as instâncias das classes a serem associadas. A chave ToInstance é um dos vários flags de tipo definidos pelo WMI para fornecer informação sobre o uso de um qualificador. A palavra-chave ToInstance indica que o WMI deve propagar o qualificador Associação para todas as instâncias da classe de associação. Ao verificar esse qualificador de instância, o software cliente pode determinar que uma instância pertence a uma classe de associação, sem ter que recuperar a definição de classe para procurar o qualificador de Associação. Para obter mais informações, consulte Descrever um qualificador com uma característica de qualificador e as Referências.

Projetando classes de formato de objeto gerenciado (MOF)