Delegate.CreateDelegate Method (Type, Type, String, Boolean, Boolean)
Creates a delegate of the specified type that represents the specified static method of the specified class, with the specified case-sensitivity and the specified behavior on failure to bind.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
public static Delegate CreateDelegate( Type type, Type target, string method, bool ignoreCase, bool throwOnBindFailure )
Parameters
- type
- Type: System.Type
The Type of delegate to create.
- target
- Type: System.Type
The Type representing the class that implements method.
- method
- Type: System.String
The name of the static 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 static method of the specified class.
| Exception | Condition |
|---|---|
| ArgumentNullException | type is null. -or- target is null. -or- method is null. |
| ArgumentException | type does not inherit MulticastDelegate. -or- type is not a RuntimeType. See Runtime Types in Reflection. -or- target is not a RuntimeType. -or- target is an open generic type. That is, its ContainsGenericParameters property is true. -or- method is not a static method (Shared method in Visual Basic). -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 static 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 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 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 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