Lire en anglais

Partager via


PropertyInfo.GetAccessors Méthode

Définition

Retourne un tableau d'accesseurs get et set sur cette propriété.

Surcharges

GetAccessors()

Retourne un tableau dont les éléments réfléchissent les accesseurs publics get et set de la propriété réfléchie par l’instance actuelle.

GetAccessors(Boolean)

Retourne un tableau dont les éléments réfléchissent les accesseurs get, set publics et, le cas échéant, non publics, ainsi que d’autres accesseurs de la propriété réfléchie par l’instance actuelle.

GetAccessors()

Source:
PropertyInfo.cs
Source:
PropertyInfo.cs
Source:
PropertyInfo.cs

Retourne un tableau dont les éléments réfléchissent les accesseurs publics get et set de la propriété réfléchie par l’instance actuelle.

C#
public System.Reflection.MethodInfo[] GetAccessors();

Retours

Tableau d’objets MethodInfo qui réfléchissent les accesseurs publics get et set de la propriété réfléchie par l’instance actuelle, le cas échéant ; sinon, cette méthode retourne un tableau avec zéro (0) élément.

Implémente

Exemples

L’exemple suivant récupère les accesseurs publics de la ClassWithProperty.Caption propriété et affiche des informations les concernant. Il appelle également la Invoke méthode du setter pour définir la valeur de la propriété et du getter pour récupérer la valeur de la propriété.

C#
using System;
using System.Reflection;
 
// Define a property.
public class ClassWithProperty
{
    private string _caption = "A Default caption";

    public string Caption
    {
        get { return _caption; }
        set { if(_caption != value) _caption = value; }
    }
}
 
class Example
{
    public static void Main()
    {
        ClassWithProperty test = new ClassWithProperty();
        Console.WriteLine("The Caption property: {0}", test.Caption);
        Console.WriteLine("----------");
        // Get the type and PropertyInfo.
        Type t = Type.GetType("ClassWithProperty");
        PropertyInfo propInfo = t.GetProperty("Caption");
 
        // Get the public GetAccessors method.
        MethodInfo[] methInfos = propInfo.GetAccessors();
        Console.WriteLine("There are {0} accessors.",
                          methInfos.Length);
        for(int ctr = 0; ctr < methInfos.Length; ctr++) {
           MethodInfo m = methInfos[ctr];
           Console.WriteLine("Accessor #{0}:", ctr + 1);
           Console.WriteLine("   Name: {0}", m.Name);
           Console.WriteLine("   Visibility: {0}", GetVisibility(m));
           Console.Write("   Property Type: ");
           // Determine if this is the property getter or setter.
           if (m.ReturnType == typeof(void)) {
              Console.WriteLine("Setter");
              Console.WriteLine("   Setting the property value.");
              //  Set the value of the property.
              m.Invoke(test, new object[] { "The Modified Caption" } );
           }
           else {
              Console.WriteLine("Getter");
              // Get the value of the property.
              Console.WriteLine("   Property Value: {0}",
                                m.Invoke(test, new object[] {} ));
           }
        }
        Console.WriteLine("----------");
        Console.WriteLine("The Caption property: {0}", test.Caption);
    }

    static string GetVisibility(MethodInfo m)
    {
       string visibility = "";
       if (m.IsPublic)
          return "Public";
       else if (m.IsPrivate)
          return "Private";
       else
          if (m.IsFamily)
             visibility = "Protected ";
          else if (m.IsAssembly)
             visibility += "Assembly";
       return visibility;
    }
}
// The example displays the following output:
//       The Caption property: A Default caption
//       ----------
//       There are 2 accessors.
//       Accessor #1:
//          Name: get_Caption
//          Visibility: Public
//          Property Type: Getter
//          Property Value: A Default caption
//       Accessor #2:
//          Name: set_Caption
//          Visibility: Public
//          Property Type: Setter
//          Setting the property value.
//       ----------
//       The Caption property: The Modified Caption

Remarques

Pour appeler la GetAccessors méthode :

  1. Obtient un Type objet qui représente la classe .

  2. À partir de l’objet Type , récupérez l’objet PropertyInfo .

  3. À partir de l’objet PropertyInfo , appelez la GetAccessors méthode .

S’applique à

.NET 10 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.5, 1.6, 2.0, 2.1

GetAccessors(Boolean)

Source:
PropertyInfo.cs
Source:
PropertyInfo.cs
Source:
PropertyInfo.cs

Retourne un tableau dont les éléments réfléchissent les accesseurs get, set publics et, le cas échéant, non publics, ainsi que d’autres accesseurs de la propriété réfléchie par l’instance actuelle.

C#
public abstract System.Reflection.MethodInfo[] GetAccessors(bool nonPublic);

Paramètres

nonPublic
Boolean

Indique si des méthodes non publiques doivent être retournées dans le tableau retourné. true si les méthodes non publiques doivent être incluses ; sinon, false.

Retours

Tableau dont les éléments réfléchissent les accesseurs get et set de la propriété réfléchie par l’instance actuelle. Si nonPublic a la valeur true, ce tableau contient des accesseurs get et set publics et non publics. Si nonPublic a la valeur false, ce tableau contient uniquement les accesseurs get et set. Si aucun accesseur avec la visibilité spécifiée n'est trouvé, cette méthode retourne un tableau avec zéro (0) éléments.

Implémente

Exemples

L’exemple suivant récupère les accesseurs de la ClassWithProperty.Caption propriété et affiche des informations les concernant. Il appelle également la Invoke méthode du setter pour définir la valeur de la propriété et du getter pour récupérer la valeur de la propriété.

C#
using System;
using System.Reflection;

// Define a property.
public class ClassWithProperty
{
    private string _caption = "A Default caption";

    public string Caption
    {
        get { return _caption; }
        set { if(_caption != value) _caption = value; }
    }
}

class Example
{
    public static void Main()
    {
        ClassWithProperty test = new ClassWithProperty();
        Console.WriteLine("The Caption property: {0}", test.Caption);
        Console.WriteLine("----------");
        // Get the type and PropertyInfo.
        Type t = Type.GetType("ClassWithProperty");
        PropertyInfo propInfo = t.GetProperty("Caption");

        // Get the public GetAccessors method.
        MethodInfo[] methInfos = propInfo.GetAccessors(true);
        Console.WriteLine("There are {0} accessors.",
                          methInfos.Length);
        for(int ctr = 0; ctr < methInfos.Length; ctr++) {
           MethodInfo m = methInfos[ctr];
           Console.WriteLine("Accessor #{0}:", ctr + 1);
           Console.WriteLine("   Name: {0}", m.Name);
           Console.WriteLine("   Visibility: {0}", GetVisibility(m));
           Console.Write("   Property Type: ");
           // Determine if this is the property getter or setter.
           if (m.ReturnType == typeof(void)) {
              Console.WriteLine("Setter");
              Console.WriteLine("   Setting the property value.");
              //  Set the value of the property.
              m.Invoke(test, new object[] { "The Modified Caption" } );
           }
           else {
              Console.WriteLine("Getter");
              // Get the value of the property.
              Console.WriteLine("   Property Value: {0}",
                                m.Invoke(test, new object[] {} ));
           }
        }
        Console.WriteLine("----------");
        Console.WriteLine("The Caption property: {0}", test.Caption);
    }

    static string GetVisibility(MethodInfo m)
    {
       string visibility = "";
       if (m.IsPublic)
          return "Public";
       else if (m.IsPrivate)
          return "Private";
       else
          if (m.IsFamily)
             visibility = "Protected ";
          else if (m.IsAssembly)
             visibility += "Assembly";
       return visibility;
    }
}
// The example displays the following output:
//       The Caption property: A Default caption
//       ----------
//       There are 2 accessors.
//       Accessor #1:
//          Name: get_Caption
//          Visibility: Public
//          Property Type: Getter
//          Property Value: A Default caption
//       Accessor #2:
//          Name: set_Caption
//          Visibility: Public
//          Property Type: Setter
//          Setting the property value.
//       ----------
//       The Caption property: The Modified Caption

Remarques

Pour appeler la GetAccessors méthode :

  1. Obtient un Type objet qui représente la classe .

  2. À partir de l’objet Type , récupérez l’objet PropertyInfo .

  3. À partir de l’objet PropertyInfo , appelez la GetAccessors méthode .

S’applique à

.NET 10 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.5, 1.6, 2.0, 2.1