Поделиться через


Delegate.CreateDelegate Method (Type, Type, String, Boolean, Boolean)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

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)

Syntax

'Declaration
<SecuritySafeCriticalAttribute> _
Public Shared Function CreateDelegate ( _
    type As Type, _
    target As Type, _
    method As String, _
    ignoreCase As Boolean, _
    throwOnBindFailure As Boolean _
) As Delegate
[SecuritySafeCriticalAttribute]
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 class that implements method.
  • method
    Type: System.String
    The name of the static method that the delegate is to represent.
  • ignoreCase
    Type: System.Boolean
    true to ignore the case when comparing the name of the method; otherwise, false.
  • throwOnBindFailure
    Type: System.Boolean
    true to throw an exception if method cannot be bound; otherwise, false.

Return Value

Type: System.Delegate
A delegate of the specified type that represents the specified static method of the specified class.

Exceptions

Exception Condition
ArgumentNullException

type is nulla null reference (Nothing in Visual Basic).

-or-

target is nulla null reference (Nothing in Visual Basic).

-or-

method is nulla null reference (Nothing in Visual Basic).

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 access to method.

-or-

Application code attempts to access this member late-bound, for example, by using the Type.InvokeMember method.

Remarks

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.

In Silverlight, method must specify an accessible method.

Platform Notes

Silverlight for Windows Phone Silverlight for Windows Phone

 CreateDelegate throws MissingMethodException when attempting to create a delegate with incorrect arguments. Delegate.CreateDelegate throws TargetInvocationException when called on a null object. Delegate.CreateDelegate throws MissingMethodException instead of ArgumentException for non-instance methods.

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.