Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

PropertyInfo.GetValue méthode (Object, Object[])

 

Retourne la valeur de la propriété d'un objet spécifié avec des valeurs d'index facultatives pour les propriétés indexées.

Espace de noms:   System.Reflection
Assembly:  mscorlib (dans mscorlib.dll)

public virtual object GetValue(
	object obj,
	object[] index
)

Paramètres

obj
Type: System.Object

Objet dont la valeur de propriété sera retournée.

index
Type: System.Object[]

Valeurs d'index facultatives pour les propriétés indexées. Les index des propriétés indexées sont en base zéro. Cette valeur doit être null pour les propriétés non indexées.

Valeur de retour

Type: System.Object

Valeur de la propriété de l'objet spécifié.

Exception Condition
ArgumentException

Le tableau index ne contient pas le type d’arguments requis.

ou

L’accesseur get de la propriété est introuvable.

TargetException

L’objet ne correspond pas au type cible, ou une propriété est une propriété d’instance mais obj a la valeur null.

TargetParameterCountException

Le nombre de paramètres dans index ne correspond pas au nombre de paramètres que prend la propriété indexée.

MethodAccessException
System_CAPS_noteRemarque

Dans .NET pour les applications du Windows Store ou la Bibliothèque de classes portable, interceptez l’exception de la classe de base, MemberAccessException, à la place.

Tentative non autorisée d’accéder à une méthode privée ou protégée à l’intérieur d’une classe.

TargetInvocationException

Une erreur s’est produite lors de la récupération de la valeur de la propriété. Par exemple, une valeur d’index spécifiée pour une propriété indexée est hors limites. La propriété InnerException indique la raison de l’erreur.

To determine whether a property is indexed, use the M:System.Reflection.PropertyInfo.GetIndexParameters method. If the resulting array has 0 (zero) elements, the property is not indexed.

This is a convenience method that provides an implementation for the abstract GetValue method with a BindingFlags parameter of Default, the Binder set to null, and the CultureInfo set to null.

Because static properties belong to the type, not individual objects, get static properties by passing null as the object argument. For example, use the following code to get the static CurrentCulture property of CultureInfo :

PropertyInfo CurCultProp = 
    (typeof(CultureInfo)).GetProperty("CurrentCulture"); 
Console.WriteLine("CurrCult: " +
    CurCultProp.GetValue(null,null));

To use the GetValue method, first get the class Type. From the Type, get the PropertyInfo. From the PropertyInfo, use the GetValue method.

System_CAPS_noteRemarque

Starting with the net_v20sp1_long, this method can be used to access non-public members if the caller has been granted T:System.Security.Permissions.ReflectionPermission with the F:System.Security.Permissions.ReflectionPermissionFlag.RestrictedMemberAccess flag and if the grant set of the non-public members is restricted to the caller’s grant set, or a subset thereof. (See Security Considerations for Reflection.)

To use this functionality, your application should target the net_v35_long or later.

The following example shows how to get the value of an indexed property. The P:System.String.Chars(System.Int32) property is the default property (the indexer in C#) of the T:System.String class.

using System;
using System.Reflection;

class Example
{
    public static void Main()
    {
        string test = "abcdefghijklmnopqrstuvwxyz";

        // Get a PropertyInfo object representing the Chars property.
        PropertyInfo pinfo = typeof(string).GetProperty("Chars");

        // Show the first, seventh, and last letters
        ShowIndividualCharacters(pinfo, test, 0, 6, test.Length - 1);

        // Show the complete string.
        Console.Write("The entire string: ");
        for (int x = 0; x < test.Length; x++)
        {
            Console.Write(pinfo.GetValue(test, new Object[] {x}));
        }
        Console.WriteLine();
    }

    static void ShowIndividualCharacters(PropertyInfo pinfo, 
                                         object value,
                                         params int[] indexes)
    {
       foreach (var index in indexes) 
          Console.WriteLine("Character in position {0,2}: '{1}'",
                            index, pinfo.GetValue(value, new object[] { index }));
       Console.WriteLine();                          
    }                                      
}
// The example displays the following output:
//    Character in position  0: 'a'
//    Character in position  6: 'g'
//    Character in position 25: 'z'
//    
//    The entire string: abcdefghijklmnopqrstuvwxyz

ReflectionPermission

for accessing non-public members when the grant set of the non-public members is restricted to the caller's grant set, or a subset thereof. Associated enumeration: F:System.Security.Permissions.ReflectionPermissionFlag.RestrictedMemberAccess

ReflectionPermission

for accessing non-public members regardless of their grant set. Associated enumeration: F:System.Security.Permissions.ReflectionPermissionFlag.MemberAccess

ReflectionPermission

when invoked late-bound through mechanisms such as M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]). Associated enumeration: F:System.Security.Permissions.ReflectionPermissionFlag.MemberAccess.

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: