Partager via


Associer des instances entre espaces de noms

Une classe de vue d'association vous permet d'utiliser des requêtes ASSOCIATEURS DE sur des classes qui résident dans des espaces de noms différents.

La procédure suivante décrit comment associer des instances entre des espaces de noms.

Pour associer des instances entre des espaces de noms

  1. Commencez la définition de votre classe par le qualificateur de chaîne d’association.

    Les qualificateurs JoinOn, Association et Union s’excluent mutuellement.

  2. Créez les requêtes qui définissent les instances sources utilisées dans la classe de vue avec le qualificateur ViewSources.

  3. Définissez les noms et l’emplacement des espaces de noms dans lesquels se trouvent les instances sources avec le qualificateur ViewSpaces.

  4. Définissez les propriétés souhaitées dans votre classe d’affichage d’association avec le qualificateur PropertySources .

    Si nécessaire, vous pouvez marquer l’une des propriétés comme appartenant à une classe source à l’aide du qualificateur HiddenDefault .

  5. Étiquetez toutes les propriétés pertinentes avec le qualificateur Direct.

    Le qualificateur Direct empêche le fournisseur d’affichage de mapper la référence d’association balisée à une référence d’affichage.

Les exemples de code suivants montrent comment créer des classes d’affichage d’association.

[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;
};