Partilhar via


Associar instâncias entre namespaces

Uma classe de exibição de associação permite que você use consultas ASSOCIATORS OF em classes que residem em namespaces diferentes.

O procedimento a seguir descreve como associar instâncias entre namespaces.

Para associar instâncias entre namespaces

  1. Inicie sua definição de classe com o qualificador de cadeia de caracteres Association.

    Os qualificadores JoinOn, Association e Union são mutuamente exclusivos.

  2. Crie as consultas que definem as instâncias de origem usadas na classe de exibição com o qualificador ViewSources.

  3. Defina os nomes e os locais dos namespaces nos quais as instâncias de origem estão localizadas com o qualificador ViewSpaces.

  4. Defina as propriedades desejadas em sua classe de exibição de associação com o qualificador PropertySources.

    Se necessário, você pode marcar qualquer uma das propriedades como pertencentes a uma classe de origem usando o qualificador HiddenDefault.

  5. Marque todas as propriedades relevantes com o qualificador Direct.

    O qualificador Direct impede que o Provedor de Exibição mapeie a referência de associação marcada como uma referência de exibição.

Os exemplos de código a seguir mostram como criar classes de exibição de associação.

[union,
ViewSources {"SELECT * FROM Win32_OperatingSystem"},
    ViewSpaces {"\\\\.\\root\\cimv2"},
    dynamic, provider("MS_VIEW_INSTANCE_PROVIDER")
]
class Union_OS_For_AssociationExample
{
    [key, PropertySources{"Name"}]
    string Name;

    [PropertySources{"Version"}]
    string Version;

    [PropertySources{"BuildNumber"}]
    string BuildNumber;
};

[
Association,
ViewSources {"SELECT * FROM Win32_SystemOperatingSystem"}, 
ViewSpaces {"\\\\.\\root\\cimv2"},
dynamic, provider("MS_VIEW_INSTANCE_PROVIDER")
]
class Association_SystemViewOperatingSystem
{
    [Direct, key, PropertySources{"GroupComponent"}]
    Win32_ComputerSystem ref Computer;
    
    [key, PropertySources{"PartComponent"}]
    Union_OS_For_AssociationExample ref OperatingSystem;
};