Delegate::CreateDelegate Method (Type, Object, String, Boolean, Boolean)
Creates a delegate of the specified type that represents the specified instance method to invoke on the specified class instance, with the specified case-sensitivity and the specified behavior on failure to bind.
Assembly: mscorlib (in mscorlib.dll)
public: static Delegate^ CreateDelegate( Type^ type, Object^ target, String^ method, bool ignoreCase, bool throwOnBindFailure )
Parameters
- type
- Type: System::Type
The Type of delegate to create.
- target
- Type: System::Object
The class instance on which method is invoked.
- method
- Type: System::String
The name of the instance method that the delegate is to represent.
- ignoreCase
- Type: System::Boolean
A Boolean indicating whether to ignore the case when comparing the name of the method.
- throwOnBindFailure
- Type: System::Boolean
true to throw an exception if method cannot be bound; otherwise, false.
Return Value
Type: System::DelegateA delegate of the specified type that represents the specified instance method to invoke on the specified class instance.
| Exception | Condition |
|---|---|
| ArgumentNullException | type is nullptr. -or- target is nullptr. -or- method is nullptr. |
| ArgumentException | type does not inherit MulticastDelegate. -or- type is not a RuntimeType. See Runtime Types in Reflection. -or- method is not an instance method. -or- method cannot be bound, for example because it cannot be found, and throwOnBindFailure is true. |
| MissingMethodException | The Invoke method of type is not found. |
| MethodAccessException | The caller does not have the permissions necessary to access method. |
This method creates delegates for instance methods only. An instance method is a method that is associated with an instance of a class; a static method is a method that is associated with the class itself.
Note |
|---|
Starting with the .NET Framework version 2.0 Service Pack 1, this method can be used to access non-public methods if the caller has been granted ReflectionPermission with the ReflectionPermissionFlag::RestrictedMemberAccess flag and if the grant set of the non-public methods 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 version 3.5 or later. |
- ReflectionPermission
for accessing a non-public method when the grant set of the non-public method is restricted to the caller's grant set, or a subset thereof. Associated enumeration: ReflectionPermissionFlag::RestrictedMemberAccess
- ReflectionPermission
for accessing a non-public method regardless of its grant set. Associated enumeration: ReflectionPermissionFlag::MemberAccess
- ReflectionPermission
when invoked late-bound through mechanisms such as Type::InvokeMember. Associated enumeration: ReflectionPermissionFlag::MemberAccess.
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Note