PropertyInfo::GetSetMethod Method (Boolean)


When overridden in a derived class, returns the set accessor for this property.

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

virtual MethodInfo^ GetSetMethod(
	bool nonPublic
) abstract


Type: System::Boolean

Indicates whether the accessor should be returned if it is non-public. true if a non-public accessor is to be returned; otherwise, false.

Return Value

Type: System.Reflection::MethodInfo^

This property's Set method, or null, as shown in the following table.



The Set method for this property.

The set accessor is public.


nonPublic is true and the set accessor is non-public.


nonPublic is true, but the property is read-only.


nonPublic is false and the set accessor is non-public.


There is no set accessor.

Exception Condition

The requested method is non-public and the caller does not have ReflectionPermission to reflect on this non-public method.

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

The following example displays the set accessor for the specified property.

using namespace System;
using namespace System::Reflection;

// Define a property.
public ref class Myproperty
   String^ caption;


   property String^ Caption 
      String^ get()
         return caption;

      void set( String^ value )
         if ( caption != value )
            caption = value;



int main()
   Console::WriteLine( "\nReflection.PropertyInfo" );

   // Get the type and PropertyInfo for two separate properties.
   Type^ MyTypea = Type::GetType( "Myproperty" );
   PropertyInfo^ Mypropertyinfoa = MyTypea->GetProperty( "Caption" );
   Type^ MyTypeb = Type::GetType( "System.Text.StringBuilder" );
   PropertyInfo^ Mypropertyinfob = MyTypeb->GetProperty( "Length" );

   // Get and display the GetSetMethod method for each property.
   MethodInfo^ Mygetmethodinfoa = Mypropertyinfoa->GetSetMethod();
   Console::Write( "\nSetAccessor for {0} returns a {1}", Mypropertyinfoa->Name, Mygetmethodinfoa->ReturnType );
   MethodInfo^ Mygetmethodinfob = Mypropertyinfob->GetSetMethod();
   Console::Write( "\nSetAccessor for {0} returns a {1}", Mypropertyinfob->Name, Mygetmethodinfob->ReturnType );

   // Display the GetSetMethod without using the MethodInfo.
   Console::Write( "\n\n{0}.{1} GetSetMethod - {2}", MyTypea->FullName, Mypropertyinfoa->Name, Mypropertyinfoa->GetSetMethod() );
   Console::Write( "\n{0}.{1} GetSetMethod - {2}", MyTypeb->FullName, Mypropertyinfob->Name, Mypropertyinfob->GetSetMethod() );
   return 0;


when invoked late-bound through mechanisms such as Type::InvokeMember. Associated enumeration: ReflectionPermissionFlag::MemberAccess.

.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top