ManagementReferenceAttribute Classe

Définition

L’attribut ManagementReferenceAttribute désigne un paramètre de membre de classe, de propriété ou de méthode en tant que référence à un autre objet ou une autre classe de gestion.

Remarque : les bibliothèques .NET de WMI sont aujourd’hui considérées comme dans un état final et ne recevront plus de développements, d’améliorations ou de mises à jour en dehors des problèmes de sécurité qui affectent ces bibliothèques. Les API MI doivent être utilisées pour tout nouveau développement.

public ref class ManagementReferenceAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property, AllowMultiple=false)]
public sealed class ManagementReferenceAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property, AllowMultiple=false)>]
type ManagementReferenceAttribute = class
    inherit Attribute
Public NotInheritable Class ManagementReferenceAttribute
Inherits Attribute
Héritage
ManagementReferenceAttribute
Attributs

Exemples

Cet exemple montre comment utiliser l’attribut ManagementReferenceAttribute avec pour ManagementQualifierAttribute créer une classe WMI d’association qui lie deux autres classes WMI. L’exemple est un fournisseur découplé qui expose trois classes WMI dans l’espace de noms racine/assoc. Les deux premières classes, NumberPhonetic et NumberLetter, sont liées par la dernière classe, LetterPhonetic.

Pour compiler l’exemple, vous devez inclure des références à System.Management.Instrumentation et System.Configuration.Install. Vous devez exécuter installutil.exe sur l’exécutable résultant et vous assurer que le programme est en cours d’exécution afin d’utiliser les classes WMI implémentées.

using System;
using System.Collections;
using System.Management.Instrumentation;

[assembly: WmiConfiguration("root/assoc", HostingModel = ManagementHostingModel.Decoupled)]

[System.ComponentModel.RunInstaller(true)]
public class TheInstaller : DefaultManagementInstaller
{ }

namespace AssocExample
{
    class Program
    {
        static void Main(string[] args)
        {
            InstrumentationManager.RegisterType(typeof(NumberPhonetic));
            InstrumentationManager.RegisterType(typeof(NumberLetter));
            InstrumentationManager.RegisterType(typeof(LetterPhonetic));

            Console.WriteLine("Press enter to exit");
            Console.ReadLine();

            InstrumentationManager.UnregisterType(typeof(NumberPhonetic));
            InstrumentationManager.UnregisterType(typeof(NumberLetter));
            InstrumentationManager.UnregisterType(typeof(LetterPhonetic));

        }
    }

  [ManagementEntity]
    public class NumberPhonetic
    {
        [ManagementKey]
        public int Number;

        [ManagementProbe]
        public string Name;

        [ManagementBind]
        public NumberPhonetic(int Number)
        {
           this.Number = Number;
           if(Number == 1)
           {
              Name = "alpha";
           }
           else if(Number == 2)
           {
              Name = "bravo";
           }
           else
           {
              throw new InstanceNotFoundException();
           }
        }

        [ManagementEnumerator]
        static public IEnumerable EnumerateInstances()
        {
            for (int i = 1; i < 3; i++)
            {
                yield return new NumberPhonetic(i);
            }
        }

    }

    [ManagementEntity]
    public class NumberLetter
    {
        [ManagementKey]
        public int Number;

        [ManagementProbe]
        public string Letter;

        [ManagementBind]
        public NumberLetter(int Number)
        {
           this.Number = Number;
           if(Number == 1)
           {
              Letter = "A";
           }
           else if(Number == 2)
           {
              Letter = "B";
           }
           else
           {
              throw new InstanceNotFoundException();
           }
        }

        [ManagementEnumerator]
        static public IEnumerable EnumerateInstances()
        {
            for (int i = 1; i < 3; i++)
            {
                yield return new NumberLetter(i);
            }
        }

    }

    [ManagementEntity]
    [ManagementQualifier("Association", Flavor = ManagementQualifierFlavors.DisableOverride)]
    public class LetterPhonetic
    {
        [ManagementReference(Type = "NumberLetter")]
        [ManagementKey]
        public string LetterNumber;

        [ManagementReference(Type = "NumberPhonetic")]
        [ManagementKey]
        public string PhoneticNumber;

        [ManagementEnumerator]
        static public IEnumerable EnumerateInstances()
        {
            ArrayList insts = new ArrayList();
            for (int i = 1; i < 3; i++)
            {
                LetterPhonetic inst = new LetterPhonetic();
                inst.LetterNumber = "Letter = " + i;
                inst.PhoneticNumber = "Phonetic = " + i;
                insts.Add(inst);
            }
            return insts;
        }

    }

}

Remarques

Vous pouvez utiliser cet attribut pour créer des classes d’association, comme illustré dans l’exemple suivant.

Constructeurs

ManagementReferenceAttribute()

Initialise une nouvelle instance de la classe ManagementReferenceAttribute. Il s’agit du constructeur sans paramètre.

Propriétés

Type

Obtient ou définit le nom du type référencé.

TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.

(Hérité de Attribute)

Méthodes

Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
GetHashCode()

Retourne le code de hachage de cette instance.

(Hérité de Attribute)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée.

(Hérité de Attribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

(Hérité de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface.

(Hérité de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

(Hérité de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.

(Hérité de Attribute)

S’applique à