Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
GetValue Method

FieldInfo.GetValue Method

When overridden in a derived class, returns the value of a field supported by a given object.

Namespace:  System.Reflection
Assemblies:   System.Reflection (in System.Reflection.dll)
  mscorlib (in mscorlib.dll)

public abstract Object GetValue(
	Object obj


Type: System.Object

The object whose field value will be returned.

Return Value

Type: System.Object
An object containing the value of the field reflected by this instance.


The field is non-static and obj is null.


A field is marked literal, but the field does not have one of the accepted literal types.


In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, MemberAccessException, instead.

The caller does not have permission to access this field.


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.


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.


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");
        val = "hi";

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);
            // 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",
            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);

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Portable Class Library

Supported in: Portable Class Library

© 2015 Microsoft