Lire en anglais

Partager via


FieldInfo.GetValue(Object) Méthode

Définition

En cas de substitution dans une classe dérivée, retourne la valeur d’un champ pris en charge par un objet donné.

C#
public abstract object GetValue(object obj);
C#
public abstract object? GetValue(object? obj);

Paramètres

obj
Object

Objet dont la valeur de champ sera retournée.

Retours

Objet contenant la valeur du champ réfléchi par cette instance.

Implémente

Exceptions

Le champ est non static et obj est null.

Remarque : Dans .NET pour les applications du Windows Store ou dans la bibliothèque de classes portable, interceptez Exception plutôt.

Un champ est marqué comme littéral, mais il n’a pas l’un des types littéraux acceptés.

L’appelant n’est pas autorisé à accéder à ce champ.

Remarque : 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.

La méthode n’est ni déclarée, ni héritée par la classe de obj.

Exemples

L’exemple suivant utilise la GetValue méthode pour récupérer la valeur d’un champ statique. Notez que la valeur de l’argument obj est null.

C#
using System;
using System.Reflection;

class Example
{
    public static String val = "test";

    public static void Main()
    {
        FieldInfo fld = typeof(Example).GetField("val");
        Console.WriteLine(fld.GetValue(null));
        val = "hi";
        Console.WriteLine(fld.GetValue(null));
    }
}
// The example displays the following output:
//     test
//     hi

L’exemple suivant récupère un tableau d’objets FieldInfo qui représente les champs du FieldsClass type, puis appelle pour GetValue afficher la valeur de chaque champ pour l’objet fieldsInst .

C#
using System;
using System.Reflection;

public class FieldsClass
{
    public string fieldA;
    public string fieldB;

    public FieldsClass()
    {
        fieldA = "A public field";
        fieldB = "Another public field";
    }
}

public class Example
{
    public static void Main()
    {
        FieldsClass fieldsInst = new FieldsClass();
        // Get the type of FieldsClass.
        Type fieldsType = typeof(FieldsClass);

        // Get an array of FieldInfo objects.
        FieldInfo[] fields = fieldsType.GetFields(BindingFlags.Public
            | BindingFlags.Instance);
        // Display the values of the fields.
        Console.WriteLine("Displaying the values of the fields of {0}:",
            fieldsType);
        for(int i = 0; i < fields.Length; i++)
        {
            Console.WriteLine("   {0}:\t'{1}'",
                fields[i].Name, fields[i].GetValue(fieldsInst));
        }
    }
}
// The example displays the following output:
//     Displaying the values of the fields of FieldsClass:
//        fieldA:      'A public field'
//        fieldB:      'Another public field'

Remarques

Si le champ est statique, obj est ignoré. Pour les champs non statiques, obj doit être une instance d’une classe qui hérite ou déclare le champ. Notez que le type de retour de GetValue est Object. Par exemple, si le champ contient une valeur primitive booléenne, une instance de Object avec la valeur booléenne appropriée est retournée. Avant de retourner la valeur, GetValue vérifie si l’utilisateur dispose d’une autorisation d’accès.

Notes

Les restrictions d’accès sont ignorées pour le code entièrement approuvé. Autrement dit, les constructeurs privés, les méthodes, les champs et les propriétés sont accessibles et appelés par réflexion chaque fois que le code est entièrement approuvé.

Notes

À compter du .NET Framework 2.0 Service Pack 1, cette méthode peut être utilisée pour accéder aux membres non publics si l’appelant a reçu ReflectionPermission l’indicateur ReflectionPermissionFlag.RestrictedMemberAccess et si l’ensemble d’octrois des membres non publics est limité à l’ensemble d’octrois de l’appelant ou à un sous-ensemble de celui-ci. (Consultez Considérations relatives à la sécurité pour la réflexion.)

Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.

S’applique à

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.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Voir aussi