TypeBuilder.DefineMethod Method (String, MethodAttributes, CallingConventions, Type, array<Type[], array<Type[], array<Type[], array<array<Type[][], array<array<Type[][])
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Adds a new method to the type, with the specified name, method attributes, calling convention, method signature, and custom modifiers.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Function DefineMethod ( _
name As String, _
attributes As MethodAttributes, _
callingConvention As CallingConventions, _
returnType As Type, _
returnTypeRequiredCustomModifiers As Type(), _
returnTypeOptionalCustomModifiers As Type(), _
parameterTypes As Type(), _
parameterTypeRequiredCustomModifiers As Type()(), _
parameterTypeOptionalCustomModifiers As Type()() _
) As MethodBuilder
public MethodBuilder DefineMethod(
string name,
MethodAttributes attributes,
CallingConventions callingConvention,
Type returnType,
Type[] returnTypeRequiredCustomModifiers,
Type[] returnTypeOptionalCustomModifiers,
Type[] parameterTypes,
Type[][] parameterTypeRequiredCustomModifiers,
Type[][] parameterTypeOptionalCustomModifiers
)
Parameters
- name
Type: System.String
The name of the method. name cannot contain embedded nulls.
- attributes
Type: System.Reflection.MethodAttributes
The attributes of the method.
- callingConvention
Type: System.Reflection.CallingConventions
The calling convention of the method.
- returnType
Type: System.Type
The return type of the method.
- returnTypeRequiredCustomModifiers
Type: array<System.Type[]
An array of types representing the required custom modifiers, such as IsConst, for the return type of the method. If the return type has no required custom modifiers, specify nulla null reference (Nothing in Visual Basic).
- returnTypeOptionalCustomModifiers
Type: array<System.Type[]
An array of types representing the optional custom modifiers, such as IsConst, for the return type of the method. If the return type has no optional custom modifiers, specify nulla null reference (Nothing in Visual Basic).
- parameterTypes
Type: array<System.Type[]
The types of the parameters of the method.
- parameterTypeRequiredCustomModifiers
Type: array<array<System.Type[][]
An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter, such as IsConst. If a particular parameter has no required custom modifiers, specify nulla null reference (Nothing in Visual Basic) instead of an array of types. If none of the parameters have required custom modifiers, specify nulla null reference (Nothing in Visual Basic) instead of an array of arrays.
- parameterTypeOptionalCustomModifiers
Type: array<array<System.Type[][]
An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter, such as IsConst. If a particular parameter has no optional custom modifiers, specify nulla null reference (Nothing in Visual Basic) instead of an array of types. If none of the parameters have optional custom modifiers, specify nulla null reference (Nothing in Visual Basic) instead of an array of arrays.
Return Value
Type: System.Reflection.Emit.MethodBuilder
The defined method.
Exceptions
Exception | Condition |
---|---|
ArgumentException | The length of name is zero. -or- The type of the parent of this method is an interface, and this method is not virtual (Overridable in Visual Basic). -or- The size of parameterTypeRequiredCustomModifiers or parameterTypeOptionalCustomModifiers does not equal the size of parameterTypes. |
ArgumentNullException | name is nulla null reference (Nothing in Visual Basic). |
InvalidOperationException | The type was previously created using CreateType. -or- For the current dynamic type, the IsGenericType property is true, but the IsGenericTypeDefinition property is false. |
Remarks
Use this overload if you need to specify custom modifiers. If you need to specify custom modifiers after the method has been created, as you would, for example, with a generic method whose parameter types are specified by its generic type parameters, you can use the DefineMethod(String, MethodAttributes) or DefineMethod(String, MethodAttributes, CallingConventions) method overloads to define the method and then use the MethodBuilder.SetSignature method to define the parameter and return types with custom modifiers.
Note: |
---|
For more information about custom modifiers, see the ECMA Partition II Metadata documentation. The documentation is available online; see ECMA C# and Common Language Infrastructure Standards on MSDN and Standard ECMA-335 - Common Language Infrastructure (CLI) on the Ecma International Web site. |
Version Information
Silverlight
Supported in: 5, 4, 3
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.