FieldInfo.SetValue, méthode (Object, Object, BindingFlags, Binder, CultureInfo)
Mise à jour : novembre 2007
En cas de substitution dans une classe dérivée, définit la valeur du champ pris en charge par l'objet donné.
Assembly : mscorlib (dans mscorlib.dll)
public abstract void SetValue( Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture )
public abstract void SetValue( Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture )
public abstract function SetValue( obj : Object, value : Object, invokeAttr : BindingFlags, binder : Binder, culture : CultureInfo )
Paramètres
- obj
- Type : System.Object
Objet dont la valeur de champ va être définie.
- value
- Type : System.Object
Valeur à assigner au champ.
- invokeAttr
- Type : System.Reflection.BindingFlags
Champ de Binder qui spécifie le type de liaison requis (par exemple, Binder.CreateInstance ou Binder.ExactBinding).
- binder
- Type : System.Reflection.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. Si binder est null, Binder.DefaultBinding est utilisé.
- culture
- Type : System.Globalization.CultureInfo
Préférences logicielles d'une culture spécifique.
Implémentations
_FieldInfo.SetValue(Object, Object, BindingFlags, Binder, CultureInfo)| Exception | Condition |
|---|---|
| FieldAccessException | 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.
Remarque : |
|---|
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. |
Remarque : |
|---|
À partir du .NET Framework version 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 version 3.5. Pour plus d'informations, consultez la page Architecture de .NET Framework 3.5. |
- ReflectionPermission
pour accéder aux champs non publics lorsque le jeu d'autorisations des membres non publics est restreint au jeu d'autorisations de l'appelant, ou un sous-ensemble de ce jeu. Énumération associée : ReflectionPermissionFlag.RestrictedMemberAccess
- ReflectionPermission
pour accéder aux champs non publics quel que soit leur jeu d'autorisations. Énumération associée : ReflectionPermissionFlag.MemberAccess
- ReflectionPermission
en cas d'appel à liaison tardive par le biais de mécanismes tels que la méthode Type.InvokeMember. Énumération associée : ReflectionPermissionFlag.MemberAccess.
- SecurityPermission
pour mettre à jour des champs InitOnly. Énumération associée : SecurityPermissionFlag.SerializationFormatter.
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC, Xbox 360
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Remarque :