This documentation is archived and is not being maintained.

Delegate.CreateDelegate Method (Type, Object, String, 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.

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

public static Delegate CreateDelegate(
	Type type,
	Object target,
	string method,
	bool ignoreCase


Type: System.Type

The Type of delegate to create.

Type: System.Object

The class instance on which method is invoked.

Type: System.String

The name of the instance method that the delegate is to represent.

Type: System.Boolean

A Boolean indicating whether to ignore the case when comparing the name of the method.

Return Value

Type: System.Delegate
A delegate of the specified type that represents the specified instance method to invoke on the specified class instance.


type is null.


target is null.


method is null.


type does not inherit MulticastDelegate.


type is not a RuntimeType. See Runtime Types in Reflection.


method is not an instance method.


method cannot be bound, for example because it cannot be found.


The Invoke method of type is not found.


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.

This method overload is equivalent to calling the CreateDelegate(Type, Object, String, Boolean, Boolean) method overload, specifying true for throwOnBindFailure.


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. For more information, see .NET Framework 3.5 Architecture.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0