Interface ICustomMethod
Represents an object that provides custom information about method. Implement this interface on your custom class inheriting from System.Reflection.MethodBase if you want CilTools.BytecodeAnalysis library to process bytecode from your custom data source, instead of the standard reflection.
Namespace: CilTools.Reflection
Assembly: CilTools.BytecodeAnalysis.dll
Syntax
public interface ICustomMethod
Remarks
In CIL Tools 2.3 and earlier, CustomMethod was used as a base class for custom methods. Starting from version 2.4, ICustomMethod interface is used instead; and custom method classes could inherit from any class, as long as it is derived from System.Reflection.MethodBase.
Properties
InitLocals
Gets the value specifying whether the local variables are initialized
Declaration
bool InitLocals { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
InitLocalsSpecified
Gets the value specifying whether the InitLocals property value is defined
Declaration
bool InitLocalsSpecified { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
MaxStackSize
Gets the maximum size of operand stack during method execution
Declaration
int MaxStackSize { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
MaxStackSizeSpecified
Gets the value specifying whether the MaxStackSize property value is defined
Declaration
bool MaxStackSizeSpecified { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
ReturnType
Gets the type of this method's return value
Declaration
Type ReturnType { get; }
Property Value
| Type | Description |
|---|---|
| System.Type |
Remarks
Returns null if the return type is not applicable (such as for constructors).
TokenResolver
Gets an object that can be used to convert metadata tokens into corresponding reflection objects
Declaration
ITokenResolver TokenResolver { get; }
Property Value
| Type | Description |
|---|---|
| ITokenResolver |
Methods
GetBytecode()
Gets the CIL bytecode of the method body
Declaration
byte[] GetBytecode()
Returns
| Type | Description |
|---|---|
| System.Byte[] | CIL bytecode as byte array |
GetDefinition()
Gets the method definition for the generic method. Returns null if this instance does not represent the generic method.
Declaration
MethodBase GetDefinition()
Returns
| Type | Description |
|---|---|
| System.Reflection.MethodBase |
GetExceptionBlocks()
Gets the list of exception handling blocks in the method's body
Declaration
ExceptionBlock[] GetExceptionBlocks()
Returns
| Type | Description |
|---|---|
| ExceptionBlock[] |
GetLocalVariables()
Gets the array of local variable declarations of this method
Declaration
LocalVariable[] GetLocalVariables()
Returns
| Type | Description |
|---|---|
| LocalVariable[] |
GetLocalVarSignature()
Gets the local variable signature as an array of bytes
Declaration
byte[] GetLocalVarSignature()
Returns
| Type | Description |
|---|---|
| System.Byte[] |
GetPInvokeParams()
Gets P/Invoke parameters for the imported unmanaged method. Returns null if this instance does not represent an imported unmanaged method.
Declaration
PInvokeParams GetPInvokeParams()
Returns
| Type | Description |
|---|---|
| PInvokeParams |