FieldInfo.SetValue FieldInfo.SetValue FieldInfo.SetValue FieldInfo.SetValue Method

Définition

Assigne à la valeur spécifiée la valeur du champ de l'objet donné.Sets the value of the field for the given object to the given value.

Surcharges

SetValue(Object, Object) SetValue(Object, Object) SetValue(Object, Object) SetValue(Object, Object)

Définit la valeur du champ pris en charge par l’objet donné.Sets the value of the field supported by the given object.

SetValue(Object, Object, BindingFlags, Binder, CultureInfo) SetValue(Object, Object, BindingFlags, Binder, CultureInfo) SetValue(Object, Object, BindingFlags, Binder, CultureInfo)

En cas de substitution dans une classe dérivée, définit la valeur du champ pris en charge par l'objet donné.When overridden in a derived class, sets the value of the field supported by the given object.

SetValue(Object, Object) SetValue(Object, Object) SetValue(Object, Object) SetValue(Object, Object)

Définit la valeur du champ pris en charge par l’objet donné.Sets the value of the field supported by the given object.

public:
 void SetValue(System::Object ^ obj, System::Object ^ value);
public void SetValue (object obj, object value);
member this.SetValue : obj * obj -> unit
Public Sub SetValue (obj As Object, value As Object)

Paramètres

obj
Object Object Object Object

Objet dont la valeur de champ sera définie.The object whose field value will be set.

value
Object Object Object Object

La valeur à affecter au champ.The value to assign to the field.

Implémente

Exceptions

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.In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MemberAccessException, instead.

L’appelant n’est pas autorisé à accéder à ce champ.The caller does not have permission to access this field.

Dans .NET pour les applications du Windows Store ou la Bibliothèque de classes portable, interceptez Exception à la place.In the .NET for Windows Store apps or the Portable Class Library, catch Exception instead.

Le obj paramètre est null et le champ est un champ d’instance.The obj parameter is null and the field is an instance field.

Ce champ n'existe pas sur l’objet.The field does not exist on the object.

- ou --or- Le paramètre value ne peut pas être converti et stocké dans le champ.The value parameter cannot be converted and stored in the field.

Exemples

L’exemple suivant définit la valeur d’un champ, obtient et affiche la valeur, modifie le champ et affiche le résultat.The following example sets the value of a field, gets and displays the value, modifies the field, and displays the result.

using namespace System;
using namespace System::Reflection;
using namespace System::Globalization;

public ref class Example
{
private:
   String^ myString;

public:
   Example()
   {
      myString = "Old value";
   }

   property String^ StringProperty 
   {
      String^ get()
      {
         return myString;
      }
   }
};

int main()
{
    Example^ myObject = gcnew Example;
    Type^ myType = Example::typeid;
    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 produces the following output:

The field value of myString is "Old value".
Applying SetValue(Object, Object).
The field value of mystring is "New value".
 */
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".
 */
Imports System.Reflection
Imports System.Globalization

Public Class Example
   Private myString As String
   
   Public Sub New()
      myString = "Old value"
   End Sub 
   
   ReadOnly Property StringProperty() As String
      Get
         Return myString
      End Get
   End Property
End Class 


Public Module FieldInfo_SetValue
   
   Sub Main()

        Dim myObject As New Example()
        Dim myType As Type = GetType(Example)
        Dim myFieldInfo As FieldInfo = myType.GetField("myString", _
           BindingFlags.NonPublic Or BindingFlags.Instance)

        ' Display the string before applying SetValue to the field.
        Console.WriteLine(vbCrLf & "The 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))

    End Sub 
End Module

' 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".

Remarques

Cette méthode est assignée value au champ réfléchi par cette instance sur l’objet. objThis method will assign value to the field reflected by this instance on object obj. Si le champ est statique, obj sera ignoré.If the field is static, obj will be ignored. Pour les champs non statiques obj , doit être une instance d’une classe qui hérite ou déclare le champ.For non-static fields, obj should be an instance of a class that inherits or declares the field. La nouvelle valeur est passée en tant Objectque.The new value is passed as an Object. Par exemple, si le type du champ est booléen, une instance de Object avec la valeur booléenne appropriée est passée.For example, if the field's type is Boolean, an instance of Object with the appropriate Boolean value is passed. Avant de définir la valeur SetValue , vérifie si l’utilisateur dispose de l’autorisation d’accès.Before setting the value, SetValue checks to see if the user has access permission. Cette dernière méthode est une méthode pratique pour appeler la méthode SetValue suivante.This final method is a convenience method for calling the following SetValue method.

Notes

Le code d’un niveau de confiance totale dispose des autorisations nécessaires pour accéder à des constructeurs, méthodes, champs et propriétés privés et les appeler à l’aide de la réflexion.Fully trusted code has the permissions that are needed to access and invoke private constructors, methods, fields, and properties using reflection.

Notes

À partir de ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess , cette méthode peut être utilisée pour accéder aux membres non publics si l’appelant a reçu l’autorisation avec l’indicateur et si le jeu d’autorisations des membres non publics est limité au jeu d’autorisations de l’appelant, ou à un .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1sous-ensemble parties.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access non-public members if the caller has been granted ReflectionPermission with the 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. (Consultez Considérations sur la sécurité pour la réflexion.)(See Security Considerations for Reflection.)

Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5.NET Framework 3.5 ou version ultérieure.To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

Sécurité

ReflectionPermission
en cas d’appel à liaison tardive via des mécanismes InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])tels que.when invoked late-bound through mechanisms such as InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]). Énumération associée : MemberAccess.Associated enumeration: MemberAccess.

SecurityPermission
pour la mise à jour des champs init uniquement.for updating init-only fields. Énumération associée : SerializationFormatter.Associated enumeration: SerializationFormatter.

SetValue(Object, Object, BindingFlags, Binder, CultureInfo) SetValue(Object, Object, BindingFlags, Binder, CultureInfo) SetValue(Object, Object, BindingFlags, Binder, CultureInfo)

En cas de substitution dans une classe dérivée, définit la valeur du champ pris en charge par l'objet donné.When overridden in a derived class, sets the value of the field supported by the given object.

public:
 abstract void SetValue(System::Object ^ obj, System::Object ^ value, System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, System::Globalization::CultureInfo ^ culture);
public abstract void SetValue (object obj, object value, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Globalization.CultureInfo culture);
abstract member SetValue : obj * obj * System.Reflection.BindingFlags * System.Reflection.Binder * System.Globalization.CultureInfo -> unit

Paramètres

obj
Object Object Object Object

Objet dont la valeur de champ sera définie.The object whose field value will be set.

value
Object Object Object Object

La valeur à affecter au champ.The value to assign to the field.

invokeAttr
BindingFlags BindingFlags BindingFlags BindingFlags

Champ de Binder qui spécifie le type de liaison requis (par exemple, Binder.CreateInstance ou Binder.ExactBinding).A field of Binder that specifies the type of binding that is desired (for example, Binder.CreateInstance or Binder.ExactBinding).

binder
Binder Binder Binder Binder

Jeu de propriétés qui active la liaison, la contrainte des types d'arguments, ainsi que l'appel des membres à l'aide de la réflexion.A set of properties that enables the binding, coercion of argument types, and invocation of members through reflection. Si binder est null, Binder.DefaultBinding est utilisé.If binder is null, then Binder.DefaultBinding is used.

culture
CultureInfo CultureInfo CultureInfo CultureInfo

Préférences logicielles d'une culture spécifique.The software preferences of a particular culture.

Implémente

Exceptions

L’appelant n’est pas autorisé à accéder à ce champ.The caller does not have permission to access this field.

Le obj paramètre est null et le champ est un champ d’instance.The obj parameter is null and the field is an instance field.

Ce champ n'existe pas sur l’objet.The field does not exist on the object.

- ou --or- Le paramètre value ne peut pas être converti et stocké dans le champ.The value parameter cannot be converted and stored in the field.

Remarques

Cette méthode est assignée value au champ réfléchi par cette instance sur. objThis method will assign value to the field reflected by this instance on obj. Si le champ est statique, obj sera ignoré.If the field is static, obj will be ignored. Pour les champs non statiques obj , doit être une instance d’une classe qui hérite ou déclare le champ.For non-static fields, obj should be an instance of a class that inherits or declares the field. La nouvelle valeur est passée en tant Objectque.The new value is passed as an Object. Par exemple, si le type du champ est Boolean, une instance de Object avec la valeur booléenne appropriée est passée.For example, if the field's type is Boolean, an instance of Object with the appropriate Boolean value is passed. Avant de définir la valeur SetValue , vérifie si l’utilisateur dispose de l’autorisation d’accès.Before setting the value, SetValue checks to see if the user has access permission.

Notes

Le code d’un niveau de confiance totale dispose des autorisations nécessaires pour accéder à des constructeurs, méthodes, champs et propriétés privés et les appeler à l’aide de la réflexion.Fully trusted code has the permissions that are needed to access and invoke private constructors, methods, fields, and properties using reflection.

Notes

À partir de ReflectionPermission ReflectionPermissionFlag.RestrictedMemberAccess , cette méthode peut être utilisée pour accéder aux membres non publics si l’appelant a reçu l’autorisation avec l’indicateur et si le jeu d’autorisations des membres non publics est limité au jeu d’autorisations de l’appelant, ou à un .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1sous-ensemble parties.Starting with the .NET Framework 2.0 Service Pack 1.NET Framework 2.0 Service Pack 1, this method can be used to access non-public members if the caller has been granted ReflectionPermission with the 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. (Consultez Considérations sur la sécurité pour la réflexion.)(See Security Considerations for Reflection.)

Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5.NET Framework 3.5 ou version ultérieure.To use this functionality, your application should target the .NET Framework 3.5.NET Framework 3.5 or later.

Sécurité

ReflectionPermission
en cas d’appel à liaison tardive via des mécanismes InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])tels que.when invoked late-bound through mechanisms such as InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]). Énumération associée : MemberAccess.Associated enumeration: MemberAccess.

SecurityPermission
pour la mise à jour des champs init uniquement.for updating init-only fields. Énumération associée : SerializationFormatter.Associated enumeration: SerializationFormatter.

S’applique à