FieldInfo.GetValue Method
When overridden in a derived class, returns the value of a field supported by a given object.
Namespace: System.Reflection
Assembly: mscorlib (in mscorlib.dll)
Parameters
- obj
- Type: System.Object
The object whose field value will be returned.
Return Value
Type: System.ObjectAn object containing the value of the field reflected by this instance.
Implements
_FieldInfo.GetValue(Object)| Exception | Condition | ||
|---|---|---|---|
| TargetException |
The field is non-static and obj is null. | ||
| NotSupportedException | A field is marked literal, but the field does not have one of the accepted literal types. | ||
| FieldAccessException |
The caller does not have permission to access this field. | ||
| ArgumentException | The method is neither declared nor inherited by the class of obj. |
If the field is static, obj is ignored. For non-static fields, obj should be an instance of a class that inherits or declares the field. Note that the return type of GetValue is Object. For example, if the field holds a Boolean primitive value, an instance of Object with the appropriate Boolean value is returned. Before returning the value, GetValue checks to see if the user has access permission.
Note |
|---|
Access restrictions are ignored for fully trusted code. That is, private constructors, methods, fields, and properties can be accessed and invoked through reflection whenever the code is fully trusted. |
Note |
|---|
Starting with the .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. (See Security Considerations for Reflection.) To use this functionality, your application should target the .NET Framework 3.5 or later. |
// The following example demonstrates getting // a field value directly, without having an object, // by defining it as a static field. using System; using System.Reflection; class MyClass { public static String val = "test"; public static void Main() { FieldInfo myf = typeof(MyClass).GetField("val"); Console.WriteLine(myf.GetValue(null)); val = "hi"; Console.WriteLine(myf.GetValue(null)); } }
The following example retrieves the fields of MyClass and displays the field values.
using System; using System.Reflection; public class MyClass { public string myFieldA; public string myFieldB; public MyClass() { myFieldA = "A public field"; myFieldB = "Another public field"; } } public class FieldInfo_GetValue { public static void Main() { MyClass myInstance = new MyClass(); // Get the type of MyClass. Type myType = typeof(MyClass); try { // Get the FieldInfo of MyClass. FieldInfo[] myFields = myType.GetFields(BindingFlags.Public | BindingFlags.Instance); // Display the values of the fields. Console.WriteLine("\nDisplaying the values of the fields of {0}.\n", myType); for(int i = 0; i < myFields.Length; i++) { Console.WriteLine("The value of {0} is: {1}", myFields[i].Name, myFields[i].GetValue(myInstance)); } } catch(Exception e) { Console.WriteLine("Exception : {0}", e.Message); } } }
- ReflectionPermission
for accessing non-public fields when the grant set of the non-public members is restricted to the caller's grant set, or a subset thereof. Associated enumeration: ReflectionPermissionFlag.RestrictedMemberAccess
- ReflectionPermission
for accessing non-public fields regardless of their grant set. Associated enumeration: ReflectionPermissionFlag.MemberAccess
- ReflectionPermission
when invoked late-bound through mechanisms such as Type.InvokeMember. Associated enumeration: ReflectionPermissionFlag.MemberAccess.
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Note