Windows apps
Collapse the table of content
Expand the table of content
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

PropertyInfo.GetValue Method (Object, Object[])

Returns the value of the property with optional index values for indexed properties.

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

public virtual Object GetValue (
	Object obj,
	Object[] index
public Object GetValue (
	Object obj, 
	Object[] index
public function GetValue (
	obj : Object, 
	index : Object[]
) : Object
Not applicable.



The object whose property value will be returned.


Optional index values for indexed properties. This value should be a null reference (Nothing in Visual Basic) for non-indexed properties.

Return Value

The property value for the obj parameter.

Exception typeCondition


The index array does not contain the type of arguments needed.


The property's get accessor is not found.


The object does not match the target type, or a property is an instance property but obj is a null reference (Nothing in Visual Basic).


The number of parameters in index does not match the number of parameters the indexed property takes.


There was an illegal attempt to access a private or protected method inside a class.


An error occurred while retrieving the property value. For example, an index value specified for an indexed property is out of range. The InnerException property indicates the reason for the error.

This is a convenience method that provides an implementation for the abstract GetValue method with a BindingFlags parameter of DefaultChangeType, the Binder set to a null reference (Nothing in Visual Basic), and the CultureInfo set to a null reference (Nothing in Visual Basic).

Because static properties belong to the type, not individual objects, get static properties by passing a null reference (Nothing in Visual Basic) as the object argument. For example, use the following code to get the static CurrentCulture property of CultureInfo :

PropertyInfo CurCultProp = 
Console.WriteLine("CurrCult: " +

To use the GetValue method, first get the class Type. From the Type, get the PropertyInfo. From the PropertyInfo, use the GetValue method.


Starting with the , this method can be used to access non-public members if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag.ReflectionEmit 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 . For more information, see The .NET Framework 3.5 Architecture.

The following example shows how to get the value of an indexed property. The String.Chars property is the default property (the indexer in C#) of the String class.

using System;
using System.Reflection;

class Example
    public static void Main()
        string test = "abcdefghijklmnopqrstuvwxyz";

        // To retrieve the value of the indexed Chars property using
        // reflection, first get a PropertyInfo for Chars.
        PropertyInfo pinfo = typeof(string).GetProperty("Chars");

        // To retrieve an instance property, the GetValue method
        // requires the object whose property is being accessed and an
        // array of objects representing the index values.

        // Show the seventh letter (g)
        object[] indexArgs = { 6 };
        object value = pinfo.GetValue(test, indexArgs);


        // Show the complete string.
        for (int x = 0; x < test.Length; x++)
            Console.Write(pinfo.GetValue(test, new Object[] {x}));

  • ReflectionPermission  for accessing non-public members when the grant set of the non-public members is restricted to the caller's grant set, or a subset thereof. Associated enumeration: System.Security.Permissions.ReflectionPermissionFlag.RestrictedMemberAccess
  • ReflectionPermission  for accessing non-public members 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 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

XNA Framework

Supported in: 1.0

Community Additions

© 2017 Microsoft