DynamicMethod Constructor (String, Type, Type)
Initializes an anonymously hosted dynamic method, specifying the method name, return type, and parameter types.
Assembly: mscorlib (in mscorlib.dll)
- Type: System.String
The name of the dynamic method. This can be a zero-length string, but it cannot be null.
- Type: System.Type
A Type object that specifies the return type of the dynamic method, or null if the method has no return type.
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 was introduced in the .NET Framework 3.5 or later.