Show / Hide Table of Contents

Class Signature

Encapsulates function's return type, calling convention and parameter types

Inheritance
System.Object
Signature
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: CilTools.BytecodeAnalysis
Assembly: CilTools.BytecodeAnalysis.dll
Syntax
public class Signature

Constructors

Signature(Byte[], ITokenResolver)

Initializes a new signature object, resolving metadata tokens using the specified resolver

Declaration
public Signature(byte[] data, ITokenResolver resolver)
Parameters
Type Name Description
System.Byte[] data

The byte array containing the signature data

ITokenResolver resolver

The object used to resolve metadata tokens

Remarks

The signature could be the method signature or the standalone signature (ECMA-335 II.23.2.3: StandAloneMethodSig)

Exceptions
Type Condition
System.ArgumentNullException

Source array is null

System.ArgumentException

Source array is empty

System.IO.EndOfStreamException

Unexpected end of input data

CilParserException

Input data is invalid

System.NotSupportedException

Signature contains unsupported elements

Signature(Byte[], ITokenResolver, MemberInfo)

Initializes a new signature object, resolving metadata tokens using the specified resolver in the specified generic context

Declaration
public Signature(byte[] data, ITokenResolver resolver, MemberInfo member)
Parameters
Type Name Description
System.Byte[] data

The byte array containing the signature data

ITokenResolver resolver

The object used to resolve metadata tokens

System.Reflection.MemberInfo member

Method that identifies generic context for generic method params, or null if this signature does not belong to a generic method

Remarks

The signature could be the method signature or the standalone signature (ECMA-335 II.23.2.3: StandAloneMethodSig)

Exceptions
Type Condition
System.ArgumentNullException

Source array is null

System.ArgumentException

Source array is empty

System.IO.EndOfStreamException

Unexpected end of input data

CilParserException

Input data is invalid

System.NotSupportedException

Signature contains unsupported elements

Signature(Byte[], Module)

Initializes a new Signature object representing a stand-alone method signature

Declaration
public Signature(byte[] data, Module module)
Parameters
Type Name Description
System.Byte[] data

The byte array containing StandAloneMethodSig data (ECMA-335 II.23.2.3)

System.Reflection.Module module

Module containing the passed signature

Exceptions
Type Condition
System.ArgumentNullException

Source array is null

System.ArgumentException

Source array is empty

System.IO.EndOfStreamException

Unexpected end of input data

CilParserException

Input data is invalid

System.NotSupportedException

Signature contains unsupported elements

Signature(Stream, ITokenResolver, MemberInfo)

Initializes a new signature object from the stream, resolving metadata tokens using the specified resolver in the specified generic context

Declaration
public Signature(Stream src, ITokenResolver resolver, MemberInfo member)
Parameters
Type Name Description
System.IO.Stream src

The stream to read signature data from

ITokenResolver resolver

The object used to resolve metadata tokens

System.Reflection.MemberInfo member

Method that identifies generic context for generic method params, or null if this signature does not belong to a generic method

Remarks

The signature could be the method signature or the standalone signature (ECMA-335 II.23.2.3: StandAloneMethodSig)

Exceptions
Type Condition
System.ArgumentNullException

Source stream is null

System.IO.EndOfStreamException

Unexpected end of input data

CilParserException

Input data is invalid

System.NotSupportedException

Signature contains unsupported elements

Properties

CallingConvention

Returns calling convention of the function described by this signature

Declaration
public CallingConvention CallingConvention { get; }
Property Value
Type Description
CallingConvention

ExplicitThis

Gets the value indicating whether the instance pointer is included explicitly in this signature

Declaration
public bool ExplicitThis { get; }
Property Value
Type Description
System.Boolean

GenericArgsCount

Gets the generic arguments or parameters count for the generic method, or zero if this signature does not represent the generic method.

Declaration
public int GenericArgsCount { get; }
Property Value
Type Description
System.Int32

GenericInst

Gets the value indicating whether this signature represents the generic method instantiation

Declaration
public bool GenericInst { get; }
Property Value
Type Description
System.Boolean

HasThis

Gets the value indicating whether the function described by this signature uses an instance pointer

Declaration
public bool HasThis { get; }
Property Value
Type Description
System.Boolean

ParamsCount

Gets the amount of fixed parameters that the function described by this signature takes

Declaration
public int ParamsCount { get; }
Property Value
Type Description
System.Int32

ParamTypes

Enumerates types of fixed parameters that the function described by this signature takes

Declaration
public IEnumerable<TypeSpec> ParamTypes { get; }
Property Value
Type Description
System.Collections.Generic.IEnumerable<TypeSpec>

ReturnType

Gets the return type of the function described by this signature

Declaration
public TypeSpec ReturnType { get; }
Property Value
Type Description
TypeSpec

Methods

GetParamType(Int32)

Gets the type of parameter with the specified index

Declaration
public TypeSpec GetParamType(int index)
Parameters
Type Name Description
System.Int32 index

Index of the requested parameter

Returns
Type Description
TypeSpec

The type of requested parameter

Exceptions
Type Condition
System.ArgumentOutOfRangeException

Index is negative or outside the bounds of collection

GetParamTypes()

Gets the array of fixed parameter types that the function described by this signature takes

Declaration
public TypeSpec[] GetParamTypes()
Returns
Type Description
TypeSpec[]

ReadFieldSignature(Byte[], ITokenResolver, MemberInfo)

Reads the field signature from the specified byte array

Declaration
public static TypeSpec ReadFieldSignature(byte[] data, ITokenResolver resolver, MemberInfo member)
Parameters
Type Name Description
System.Byte[] data

The byte array containing the field signature data

ITokenResolver resolver

The object used to resolve metadata tokens

System.Reflection.MemberInfo member

Method that identifies generic context for generic method params, or null if this signature does not belong to a generic method

Returns
Type Description
TypeSpec

The TypeSpec representing the field type

Remarks

The field signature in .NET assembly consists of only the single TypeSpec that represents the field type. The signature data passed to this method should not contain data for signature types other then the field signature (such as the method signature), or an exception will be thrown.

Exceptions
Type Condition
System.ArgumentNullException

Source array is null

System.ArgumentException

Source array is empty

System.IO.InvalidDataException

The signature data does not represent the field signature

ReadFromArray(Byte[], SignatureContext)

Reads a signature from the specified byte array using the specified signature context

Declaration
public static Signature ReadFromArray(byte[] data, SignatureContext ctx)
Parameters
Type Name Description
System.Byte[] data

Byte array to read data from

SignatureContext ctx

The signature context

Returns
Type Description
Signature
Remarks

The signature could be the method signature or the standalone signature (ECMA-335 II.23.2.3: StandAloneMethodSig)

A signature context encapsulates a token resolver and a generic context. Generic context is only used when the signature contains generic parameters.

Exceptions
Type Condition
System.ArgumentNullException

Source array or signature context is null

System.ArgumentException

Source array is empty

ToString()

Gets the textual representation of this signature as CIL code

Declaration
public override string ToString()
Returns
Type Description
System.String
Overrides
System.Object.ToString()
Back to top CIL Tools (published from sources in GitHub repository).
Generated by DocFX