This topic has not yet been rated - Rate this topic

DynamicMethod Constructor (String, Type, Type[])

Initializes an anonymously hosted dynamic method, specifying the method name, return type, and parameter types.

Namespace:  System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)
public DynamicMethod(
	string name,
	Type returnType,
	Type[] parameterTypes
)

Parameters

name
Type: System.String
The name of the dynamic method. This can be a zero-length string, but it cannot be null.
returnType
Type: System.Type
A Type object that specifies the return type of the dynamic method, or null if the method has no return type.
parameterTypes
Type: System.Type[]
An array of Type objects specifying the types of the parameters of the dynamic method, or null if the method has no parameters.
Exception Condition
ArgumentException

An element of parameterTypes is null or Void.

ArgumentNullException

name is null.

NotSupportedException

returnType is a type for which Type.IsByRef returns true.

The dynamic method that is created by this constructor is associated with an anonymous assembly instead of an existing type or module. The anonymous assembly exists only to provide a sandbox environment for dynamic methods, that is, to isolate them from other code. This environment makes it safe for the dynamic method to be emitted and executed by partially trusted code.

This constructor specifies that just-in-time (JIT) visibility checks will be enforced for the Microsoft intermediate language (MSIL) of the dynamic method. That is, the code in the dynamic method has access to public methods of public classes. Exceptions are thrown if the method tries to access types or members that are private, protected, or internal (Friend in Visual Basic). To create a dynamic method that has restricted ability to skip JIT visibility checks, use the DynamicMethod(String, Type, Type[], Boolean) constructor.

When an anonymously hosted dynamic method is constructed, the call stack of the emitting assembly is included. When the method is invoked, the permissions of the emitting assembly are used instead of the permissions of the actual caller. Thus, the dynamic method cannot execute at a higher level of privilege than that of the assembly that emitted it, even if it is passed to and executed by an assembly that has a higher trust level.

This constructor specifies the method attributes MethodAttributes.Public and MethodAttributes.Static, and the calling convention CallingConventions.Standard.

Note Note

This constructor was introduced in the .NET Framework version 3.5 or later.

.NET Framework

Supported in: 4, 3.5 SP1, 3.0 SP1, 2.0 SP1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, 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.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ