Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

FieldInfo.SetValue, méthode (Object, Object)

Définit la valeur du champ pris en charge par l'objet donné.

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

public void SetValue(
	Object obj,
	Object value
)

Paramètres

obj
Type : System.Object
Objet dont la valeur de champ va être définie.
value
Type : System.Object
Valeur à assigner au champ.

Implémentations

_FieldInfo.SetValue(Object, Object)

ExceptionCondition
FieldAccessException
RemarqueRemarque
Dans les .NET pour applications Windows Store ou la Bibliothèque de classes portable, intercepte l'exception de classe de base, MemberAccessException, sinon.

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

TargetException

Le paramètre obj est null et le champ est un champ d'instance.

ArgumentException

Le champ n'existe pas dans l'objet.

ou

Le paramètre value ne peut être ni converti ni stocké dans le champ.

Cette méthode assigne la valeur value au champ réfléchi par cette instance sur l'objet obj. Si le champ est statique, obj est ignoré. Pour les champs non statiques, obj doit être l'instance d'une classe qui hérite du champ ou le déclare. La nouvelle valeur est passée en tant que Object. Par exemple, si le type du champ est Boolean, une instance de Object, avec la valeur Boolean appropriée, est passée. Avant de définir la valeur, SetValue vérifie si l'utilisateur dispose d'une autorisation d'accès. Cette dernière méthode est une méthode commode servant à appeler la méthode SetValue suivante.

RemarqueRemarque

Le code d'un niveau de confiance suffisant possède les autorisations nécessaires pour accéder à des constructeurs, méthodes, champs et propriétés privés et les appeler par réflexion.

RemarqueRemarque

À partir du .NET Framework 2.0 Service Pack 1, cette méthode peut être utilisée pour accéder aux membres non publics si l'autorisation ReflectionPermission avec l'indicateur ReflectionPermissionFlag.RestrictedMemberAccess a été accordée à l'appelant et si le jeu d'autorisations des membres non publics est limité au jeu d'autorisations de l'appelant ou un sous-ensemble de ce jeu. (Consultez Considérations sur la sécurité de la réflexion.)

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

L'exemple suivant définit la valeur d'un champ, obtient et affiche la valeur, modifie le champ et affiche le résultat.


using System;
using System.Reflection;
using System.Globalization;

public class Example
{
    private string myString;
    public Example()
    {
        myString = "Old value";
    }

    public string StringProperty
    {
        get
        {
            return myString;
        }
    }
}

public class FieldInfo_SetValue
{
    public static void Main()
    {
        Example myObject = new Example();
        Type myType = typeof(Example);
        FieldInfo myFieldInfo = myType.GetField("myString", 
            BindingFlags.NonPublic | BindingFlags.Instance); 

        // Display the string before applying SetValue to the field.
        Console.WriteLine( "\nThe field value of myString is \"{0}\".", 
        myFieldInfo.GetValue(myObject)); 
        // Display the SetValue signature used to set the value of a field.
        Console.WriteLine( "Applying SetValue(Object, Object)."); 

        // Change the field value using the SetValue method. 
        myFieldInfo.SetValue(myObject, "New value"); 
        // Display the string after applying SetValue to the field.
        Console.WriteLine( "The field value of mystring is \"{0}\".", 
            myFieldInfo.GetValue(myObject));
    }
}

/* This code example produces the following output:

The field value of myString is "Old value".
Applying SetValue(Object, Object).
The field value of mystring is "New value".
 */


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

Afficher:
© 2014 Microsoft