dnlib
Returns types without getting stuck in an infinite loop
Gets a list of all types and nested types
A list of types
Assembly flags from Assembly.Flags column.
See CorHdr.h/CorAssemblyFlags
No flags set
The assembly ref holds the full (unhashed) public key.
Processor Architecture unspecified
Processor Architecture: neutral (PE32)
Processor Architecture: x86 (PE32)
Processor Architecture: Itanium (PE32+)
Processor Architecture: AMD X64 (PE32+)
Processor Architecture: ARM (PE32)
applies to any platform but cannot run on any (e.g. reference assembly), should not have "specified" set
Propagate PA flags to AssemblyRef record
Bits describing the processor architecture
Bits describing the PA incl. Specified
NOT A FLAG, shift count in PA flags <--> index conversion
From "DebuggableAttribute".
From "DebuggableAttribute".
The assembly can be retargeted (at runtime) to an assembly from a different publisher.
Bits describing ContentType
A high-level representation of a row in the Assembly table
The row id in its table
From column Assembly.HashAlgId
From columns Assembly.MajorVersion, Assembly.MinorVersion, Assembly.BuildNumber,
Assembly.RevisionNumber.
If is null
From column Assembly.Flags
Attributes
From column Assembly.PublicKey
An empty is created if the caller writes null
Gets the public key token which is calculated from
From column Assembly.Name
Name
From column Assembly.Locale
Name
Initializes
Gets all modules. The first module is always the .
Initializes
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
true if is not empty
Gets the manifest (main) module. This is always the first module in .
null is returned if is empty.
Modify property: =
( & ) | .
Value to AND
Value to OR
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the bit
Gets/sets the processor architecture
Gets/sets the processor architecture
true if unspecified processor architecture
true if neutral (PE32) architecture
true if x86 (PE32) architecture
true if IA-64 (PE32+) architecture
true if x64 (PE32+) architecture
true if ARM (PE32) architecture
true if eg. reference assembly (not runnable)
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the content type
true if content type is Default
true if content type is WindowsRuntime
Finds a module in this assembly
Name of module
A instance or null if it wasn't found.
Creates an instance from a file
File name of an existing .NET assembly
Module context or null
A new instance
If is null
If it's not a .NET assembly (eg. not a .NET file or only a .NET module)
Creates an instance from a file
File name of an existing .NET assembly
Module creation options or null
A new instance
If is null
If it's not a .NET assembly (eg. not a .NET file or only a .NET module)
Creates an instance from a byte[]
Contents of a .NET assembly
Module context or null
A new instance
If is null
If it's not a .NET assembly (eg. not a .NET file or only a .NET module)
Creates an instance from a byte[]
Contents of a .NET assembly
Module creation options or null
A new instance
If is null
If it's not a .NET assembly (eg. not a .NET file or only a .NET module)
Creates an instance from a memory location
Address of a .NET assembly
Module context or null
A new instance
If is null
If it's not a .NET assembly (eg. not a .NET file or only a .NET module)
Creates an instance from a memory location
Address of a .NET assembly
Module creation options or null
A new instance
If is null
If it's not a .NET assembly (eg. not a .NET file or only a .NET module)
Creates an instance from a stream
This will read all bytes from the stream and call .
It's better to use one of the other Load() methods.
The stream
Module context or null
A new instance
If is null
If it's not a .NET assembly (eg. not a .NET file or only a .NET module)
Creates an instance from a stream
This will read all bytes from the stream and call .
It's better to use one of the other Load() methods.
The stream
Module creation options or null
A new instance
If is null
If it's not a .NET assembly (eg. not a .NET file or only a .NET module)
Gets the assembly name with the public key
Gets the assembly name with the public key token
Finds a . For speed, enable
if possible (read the documentation first).
Full name of the type (no assembly information)
true if it's a reflection name, and nested
type names are separated by a + character. If false, nested type names
are separated by a / character.
An existing or null if it wasn't found.
Finds a . Its scope (i.e., module or assembly) is ignored when
looking up the type. For speed, enable
if possible (read the documentation first).
The type ref
An existing or null if it wasn't found.
Writes the assembly to a file on disk. If the file exists, it will be truncated.
Filename
Writer options
Writes the assembly to a stream.
Destination stream
Writer options
Checks whether this assembly is a friend assembly of
Target assembly
Adds or updates an existing System.Reflection.AssemblySignatureKeyAttribute
attribute. This attribute is used in enhanced strong naming with key migration.
See http://msdn.microsoft.com/en-us/library/hh415055.aspx
Identity public key
Identity strong name key pair
Signature public key
Gets the original System.Runtime.Versioning.TargetFrameworkAttribute custom attribute information if possible.
It reads this from the original metadata and doesn't use .
Returns false if the custom attribute isn't present or if it is invalid.
Framework name
Version
Profile
An Assembly row created by the user and not present in the original .NET file
Default constructor
Constructor
Simple name
If any of the args is invalid
Constructor
Simple name
Version
If any of the args is invalid
Constructor
Simple name
Version
Public key
If any of the args is invalid
Constructor
Simple name
Version
Public key
Locale
If any of the args is invalid
Constructor
Assembly name info
If is null
Constructor
Assembly name info
If is null
Created from a row in the Assembly table
The module where this instance is located
Constructor
The module which contains this Assembly row
Row ID
If is null
If is invalid
Hashes some data according to a
Constructor
If is an unsupported hash algorithm, then
will be used as the hash algorithm.
The algorithm to use
Hash data
If is an unsupported hash algorithm, then
will be used as the hash algorithm.
The data
The algorithm to use
Hashed data or null if was null
Hash data
Data
Hash data
Data
Offset
Length
Hash stream data
Stream
Number of bytes to hash
Temp buffer
Computes the hash
Creates a public key token from the hash of some
A public key is hashed, and the last 8 bytes of the hash, in reverse
order, is used as the public key token
The data
A new instance
Any ALG_CLASS_HASH type in WinCrypt.h can be used by Microsoft's CLI implementation
This is a reserved value in the CLI
The only algorithm supported by the CLI
Extension methods
Gets the field type
this
Field type or null if none
Gets the return type
this
Return type or null if none
Gets the parameters
this
The parameters
Gets the parameter count
this
Parameter count
Gets the generic parameter count
this
Generic parameter count
Gets the parameters after the sentinel
this
Parameters after sentinel or null if none
Gets the locals
this
All locals
Gets the generic arguments
this
All generic arguments
Gets the property
this
The type's property or
false if input isnull
Returns true if it's an integer or a floating point type
Element type
Returns the size of the element type in bytes or -1 if it's unknown
Element type
Size of a pointer
Checks whether it's a value type
this
true if it's a value type, false if it's not a value type or
if we couldn't determine whether it's a value type. Eg., it could be a generic
instance type.
Finds and returns an
this
The assembly to find
The module that needs to resolve an assembly or null
An instance owned by the assembly resolver or
null if the assembly couldn't be found.
Finds and returns an
this
The assembly to find
The module that needs to resolve an assembly or null
An instance owned by the assembly resolver or
null if the assembly couldn't be found.
Finds and returns an
this
The assembly to find
The module that needs to resolve an assembly or null
An instance owned by the assembly resolver
If the assembly couldn't be found.
Finds and returns an
this
The assembly to find
The module that needs to resolve an assembly or null
An instance owned by the assembly resolver
If the assembly couldn't be found.
Finds and returns an
this
The assembly to find
The module that needs to resolve an assembly or null
An instance owned by the assembly resolver
If the assembly couldn't be found.
Checks whether appears to be the core library (eg.
mscorlib, System.Runtime or corefx).
If is a reference to a private corlib (eg. System.Private.CoreLib),
this method returns false unless is an
whose manifest (first) module defines System.Object. This check is performed in
the constructor and the result can be found in .
Note that this method also returns true if it appears to be a 'public' corlib,
eg. mscorlib, etc, even if it internally possibly references a private corlib.
The assembly
Converts to a instance
The assembly
A new instance
Converts to a
The type
true if we should try to figure out whether
is a
A instance or null if
is invalid
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns the base type of . Throws if we can't resolve
a .
The type
The base type or null if there's no base type
Returns the base type of
The type
true if we should throw if we can't
resolve a . false if we should ignore the error and
just return null.
The base type or null if there's no base type, or if
is true and we couldn't resolve
a
Gets the scope type, resolves it, and returns the
Type
A or null if input was null or if we
couldn't resolve the reference.
Gets the scope type, resolves it, and returns the
Type
A instance.
If the type couldn't be resolved
Resolves an to a . Returns null if it
was not possible to resolve it. See also
Field to resolve
The or null if is
null or if it wasn't possible to resolve it (the field doesn't exist or its
assembly couldn't be loaded)
Resolves an to a and throws an exception if
it was not possible to resolve it. See also
Field to resolve
The
Resolves an to a . Returns null if it
was not possible to resolve it. See also . If
is a , then the
property is resolved and returned.
Method to resolve
The or null if is
null or if it wasn't possible to resolve it (the method doesn't exist or its
assembly couldn't be loaded)
Resolves an to a and throws an exception
if it was not possible to resolve it. See also . If
is a , then the
property is resolved and returned.
Method to resolve
The
Returns the definition assembly of a
Member reference
Gets the normal visible parameters, doesn't include the hidden 'this' parameter
this
The normal visible parameters
Gets the normal visible parameter count, doesn't include the hidden 'this' parameter
this
Normal visible parameter count
Checks whether any normal visible parameter exists, doesn't include the hidden 'this' parameter
this
true if there's at least one normal visible parameter
Gets a normal visible parameter, doesn't include the hidden 'this' parameter
this
Normal visible parameter index
Converts a to a
The sig
Returns true if it's an integer or a floating point type
Type
Gets a if matches a primitive type.
this
The type
A or null if it didn't match any primitive type
Gets a if and
matches a primitive type.
this
Namespace
Name
Definition assembly
A or null if it didn't match any primitive type
Gets a if and
matches a primitive type.
this
Namespace
Name
Definition assembly
A or null if it didn't match any primitive type
Log an error message
this
Sender or null
Message
Log an error message
this
Sender or null
Message
Message arg #1
Log an error message
this
Sender or null
Message
Message arg #1
Message arg #2
Log an error message
this
Sender or null
Message
Message arg #1
Message arg #2
Message arg #3
Log an error message
this
Sender or null
Message
Message arg #1
Message arg #2
Message arg #3
Message arg #4
Log an error message
this
Sender or null
Message
Message arguments
Log a warning message
this
Sender or null
Message
Log a warning message
this
Sender or null
Message
Message arg #1
Log a warning message
this
Sender or null
Message
Message arg #1
Message arg #2
Log a warning message
this
Sender or null
Message
Message arg #1
Message arg #2
Message arg #3
Log a warning message
this
Sender or null
Message
Message arg #1
Message arg #2
Message arg #3
Message arg #4
Log a warning message
this
Sender or null
Message
Message arguments
Log an info message
this
Sender or null
Message
Log an info message
this
Sender or null
Message
Message arg #1
Log an info message
this
Sender or null
Message
Message arg #1
Message arg #2
Log an info message
this
Sender or null
Message
Message arg #1
Message arg #2
Message arg #3
Log an info message
this
Sender or null
Message
Message arg #1
Message arg #2
Message arg #3
Message arg #4
Log an info message
this
Sender or null
Message
Message arguments
Log a verbose message
this
Sender or null
Message
Log a verbose message
this
Sender or null
Message
Message arg #1
Log a verbose message
this
Sender or null
Message
Message arg #1
Message arg #2
Log a verbose message
this
Sender or null
Message
Message arg #1
Message arg #2
Message arg #3
Log a verbose message
this
Sender or null
Message
Message arg #1
Message arg #2
Message arg #3
Message arg #4
Log a verbose message
this
Sender or null
Message
Message arguments
Log a very verbose message
this
Sender or null
Message
Log a very verbose message
this
Sender or null
Message
Message arg #1
Log a very verbose message
this
Sender or null
Message
Message arg #1
Message arg #2
Log a very verbose message
this
Sender or null
Message
Message arg #1
Message arg #2
Message arg #3
Log a very verbose message
this
Sender or null
Message
Message arg #1
Message arg #2
Message arg #3
Message arg #4
Log a very verbose message
this
Sender or null
Message
Message arguments
Resolves a type
this
The type
A instance or null if it couldn't be resolved
Resolves a type
this
The type
A instance
If the type couldn't be resolved
Resolves a type
this
The type
The module that needs to resolve the type or null
A instance
If the type couldn't be resolved
Resolves a method or a field
this
A method/field reference
A or a instance
If the method/field couldn't be resolved
Resolves a field
this
A field reference
A instance or null if it couldn't be resolved.
Resolves a field
this
A field reference
A instance or null if it couldn't be resolved.
If the field couldn't be resolved
Resolves a method
this
A method reference
A instance or null if it couldn't be resolved.
Resolves a method
this
A method reference
A instance or null if it couldn't be resolved.
If the method couldn't be resolved
Resolves a token
This
The metadata token
A or null if is invalid
Returns , but if it's a nested ,
return the non-nested
this
The scope type
Finds a . Its scope (i.e., module or assembly) is ignored when
looking up the type.
this
The type ref
An existing or null if it wasn't found.
If type couldn't be found
Finds a
this
Full name of the type (no assembly information)
true if it's a reflection name, and nested
type names are separated by a + character. If false, nested type names
are separated by a / character.
An existing
If type couldn't be found
Finds a
this
Full name of the type (no assembly information). Nested types are separated by /
An existing or null if it wasn't found.
Finds a
this
Full name of the type (no assembly information). Nested types are separated by /
An existing
If type couldn't be found
Finds a
this
Full name of the type (no assembly information). Nested types are separated by +
An existing or null if it wasn't found.
Finds a
this
Full name of the type (no assembly information). Nested types are separated by +
An existing
If type couldn't be found
Checks whether a exists. 's scope (i.e.,
module or assembly) is ignored when looking up the type.
this
The type ref
true if the exists, false otherwise
Checks whether a exists
this
Full name of the type (no assembly information)
true if it's a reflection name, and nested
type names are separated by a + character. If false, nested type names
are separated by a / character.
true if the exists, false otherwise
Checks whether a exists
this
Full name of the type (no assembly information). Nested types are separated by /
true if the exists, false otherwise
Checks whether a exists
this
Full name of the type (no assembly information). Nested types are separated by +
true if the exists, false otherwise
Removes all C optional/required modifiers
A instance
Input after all modifiers
Removes pinned signature
The type
Input after pinned signature
Removes all modifiers and pinned sig
The type
Inputer after modifiers and pinned signature
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Returns a
The type
A or null if it's not a
Gets the next field or null
this
Gets the value or false if
is null
this
Gets the value or false if
is null
this
Gets the element type
this
The element type
Gets the full name of the type
this
Full name of the type
Gets the name of the type
this
Name of the type
Gets the namespace of the type
this
Namespace of the type
Returns the if it is a .
this
A or null if none found
Returns the if it is a .
this
A or null if none found
Returns the if it is a .
Nothing is resolved.
this
A or null if none found
Returns the if it is a .
this
A or null if none found
Flags used by
Compare assembly simple name
Compare assembly version
Compare assembly public key token
Compare assembly culture
Compare content type
Compare assembly simple name, version, public key token, locale and content type
Compares two assembly names
Compares the name, version, public key token, culture and content type
Compares only the name and the public key token
Compares only the name
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Constructor
Comparison flags
Compares two assembly names
First
Second
< 0 if a < b, 0 if a == b, > 0 if a > b
Compares two assembly names
First
Second
true if equal, false otherwise
Figures out which of two assembly names is closer to another assembly name
Requested assembly name
First
Second
-1 if both are equally close, 0 if is closest, 1 if
is closest
Gets the hash code of an assembly name
Assembly name
The hash code
Stores assembly name information
Gets/sets the
Gets/sets the or null if none specified
Gets/sets the
Gets/sets the public key or token
Gets/sets the name
Gets/sets the culture or null if none specified
Gets the full name of the assembly
Gets the full name of the assembly but use a public key token
Modify property: =
( & ) | .
Value to AND
Value to OR
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the bit
Gets/sets the processor architecture
Gets/sets the processor architecture
true if unspecified processor architecture
true if neutral (PE32) architecture
true if x86 (PE32) architecture
true if IA-64 (PE32+) architecture
true if x64 (PE32+) architecture
true if ARM (PE32) architecture
true if eg. reference assembly (not runnable)
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the content type
true if content type is Default
true if content type is WindowsRuntime
Default constructor
Constructor
An assembly name
Constructor
The assembly
Constructor
Assembly name info
A high-level representation of a row in the AssemblyRef table
An assembly ref that can be used to indicate that it references the current assembly
when the current assembly is not known (eg. a type string without any assembly info
when it references a type in the current assembly).
The row id in its table
From columns AssemblyRef.MajorVersion, AssemblyRef.MinorVersion,
AssemblyRef.BuildNumber, AssemblyRef.RevisionNumber
If is null
From column AssemblyRef.Flags
Attributes
From column AssemblyRef.PublicKeyOrToken
If is null
From column AssemblyRef.Name
Name
From column AssemblyRef.Locale
Culture
From column AssemblyRef.HashValue
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
Same as , except that it uses the PublicKey if available.
Gets the full name of the assembly but use a public key token
Modify property: =
( & ) | .
Value to AND
Value to OR
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the bit
Gets/sets the processor architecture
Gets/sets the processor architecture
true if unspecified processor architecture
true if neutral (PE32) architecture
true if x86 (PE32) architecture
true if IA-64 (PE32+) architecture
true if x64 (PE32+) architecture
true if ARM (PE32) architecture
true if eg. reference assembly (not runnable)
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the content type
true if content type is Default
true if content type is WindowsRuntime
An AssemblyRef row created by the user and not present in the original .NET file
Creates a reference to CLR 1.0's mscorlib
Creates a reference to CLR 1.1's mscorlib
Creates a reference to CLR 2.0's mscorlib
Creates a reference to CLR 4.0's mscorlib
Default constructor
Constructor
Simple name
If any of the args is invalid
Constructor
Simple name
Version
If any of the args is invalid
Constructor
Simple name
Version
Public key or public key token
If any of the args is invalid
Constructor
Simple name
Version
Public key or public key token
Locale
If any of the args is invalid
Constructor
Assembly name info
If is null
Constructor
Assembly
Created from a row in the AssemblyRef table
The module where this instance is located
Constructor
The module which contains this AssemblyRef row
Row ID
If is null
If is invalid
Resolves assemblies
Gets/sets the default
true if should find an assembly that matches exactly.
false if it first tries to match exactly, and if that fails, it picks an
assembly that is closest to the requested assembly.
true if resolved .NET framework assemblies can be redirected to the source
module's framework assembly version. Eg. if a resolved .NET 3.5 assembly can be
redirected to a .NET 4.0 assembly if the source module is a .NET 4.0 assembly. This is
ignored if is true.
If true, all modules in newly resolved assemblies will have their
property set to true. This is
enabled by default since these modules shouldn't be modified by the user.
true to search the Global Assembly Cache. Default value is true.
Gets paths searched before trying the standard locations
Gets paths searched after trying the standard locations
Default constructor
Constructor
Module context for all resolved assemblies
Add a module's assembly to the assembly cache
The module whose assembly should be cached
true if 's assembly is cached, false
if it's not cached because some other assembly with the exact same full name has
already been cached or if or its assembly is null.
Add an assembly to the assembly cache
The assembly
true if is cached, false if it's not
cached because some other assembly with the exact same full name has already been
cached or if is null.
Removes a module's assembly from the cache
The module
true if its assembly was removed, false if it wasn't removed
since it wasn't in the cache, it has no assembly, or was
null
Removes the assembly from the cache
The assembly
true if it was removed, false if it wasn't removed since it
wasn't in the cache or if was null
Clears the cache and calls on each cached module.
Use to remove any assemblies you added yourself
using before calling this method if you don't want
them disposed.
Gets the cached assemblies in this resolver.
The cached assemblies.
Finds an assembly that exactly matches the requested assembly
Assembly to find
Search paths or null if none
Module context
An instance or null if an exact match
couldn't be found.
Finds the closest assembly from the already cached assemblies
Assembly to find
The closest or null if none found
Returns true if is inserted in
Assembly to check
Called before
Assembly to find
The module that needs to resolve an assembly or null
We're trying to find an exact match
null or an enumerable of full paths to try
Called after (if it fails)
Assembly to find
The module that needs to resolve an assembly or null
We're trying to find an exact match
null or an enumerable of full paths to try
Called after (if it fails)
Assembly to find
The module that needs to resolve an assembly or null
We're trying to find an exact match
null or an enumerable of full paths to try
Gets all search paths to use for this module
The module or null if unknown
A list of all search paths to use for this module
Gets all module search paths. This is usually empty unless its assembly has
a .config file specifying any additional private search paths in a
<probing/> element.
The module or null if unknown
A list of search paths
Gets all private assembly search paths as found in the module's .config file.
The module or null if unknown
A list of search paths
See CorHdr.h/CorCallingConvention
The managed calling convention
generic method instantiation
used ONLY for 64bit vararg PInvoke calls
Calling convention is bottom 4 bits
Generic method
Method needs a 'this' parameter
'this' parameter is the first arg if set (else it's hidden)
Used internally by the CLR
Base class for sigs with a calling convention
The calling convention
Gets/sets the extra data found after the signature
Returns true if is set
Returns true if is set
Returns true if is set
Returns true if is set
Returns true if is set
Returns true if is set
Returns true if is set
Returns true if is set
Returns true if is set
Returns true if is set
Returns true if is set
Returns true if is set
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
true if there's an implicit this parameter
true if this contains a
or a .
Default constructor
Constructor
The calling convention
Gets the calling convention
A field signature
Gets/sets the field type
Default constructor
Constructor
Field type
Constructor
Field type
The calling convention (must have Field set)
Clone this
Method sig base class
Gets/sets the calling convention
Gets/sets the return type
Gets the parameters. This is never null
Gets/sets the generic param count
Gets the parameters that are present after the sentinel. Note that this is null
if there's no sentinel. It can still be empty even if it's not null.
A method signature
Gets/sets the original token. It's set when reading calli instruction operands
and it's a hint to the module writer if it tries to re-use the same token.
Creates a static MethodSig
Return type
Creates a static MethodSig
Return type
Arg type #1
Creates a static MethodSig
Return type
Arg type #1
Arg type #2
Creates a static MethodSig
Return type
Arg type #1
Arg type #2
Arg type #3
Creates a static MethodSig
Return type
Argument types
Creates an instance MethodSig
Return type
Creates an instance MethodSig
Return type
Arg type #1
Creates an instance MethodSig
Return type
Arg type #1
Arg type #2
Creates an instance MethodSig
Return type
Arg type #1
Arg type #2
Arg type #3
Creates an instance MethodSig
Return type
Argument types
Creates a static generic MethodSig
Number of generic parameters
Return type
Creates a static generic MethodSig
Number of generic parameters
Return type
Arg type #1
Creates a static generic MethodSig
Number of generic parameters
Return type
Arg type #1
Arg type #2
Creates a static generic MethodSig
Number of generic parameters
Return type
Arg type #1
Arg type #2
Arg type #3
Creates a static generic MethodSig
Number of generic parameters
Return type
Argument types
Creates an instance generic MethodSig
Number of generic parameters
Return type
Creates an instance generic MethodSig
Number of generic parameters
Return type
Arg type #1
Creates an instance generic MethodSig
Number of generic parameters
Return type
Arg type #1
Arg type #2
Creates an instance generic MethodSig
Number of generic parameters
Return type
Arg type #1
Arg type #2
Arg type #3
Creates an instance generic MethodSig
Number of generic parameters
Return type
Argument types
Default constructor
Constructor
Calling convention
Constructor
Calling convention
Number of generic parameters
Constructor
Calling convention
Number of generic parameters
Return type
Constructor
Calling convention
Number of generic parameters
Return type
Arg type #1
Constructor
Calling convention
Number of generic parameters
Return type
Arg type #1
Arg type #2
Constructor
Calling convention
Number of generic parameters
Return type
Arg type #1
Arg type #2
Arg type #3
Constructor
Calling convention
Number of generic parameters
Return type
Argument types
Constructor
Calling convention
Number of generic parameters
Return type
Argument types
Constructor
Calling convention
Number of generic parameters
Return type
Argument types
Parameters after sentinel
Clone this
A property signature
Creates a static PropertySig
Return type
Creates a static PropertySig
Return type
Arg type #1
Creates a static PropertySig
Return type
Arg type #1
Arg type #2
Creates a static PropertySig
Return type
Arg type #1
Arg type #2
Arg type #3
Creates a static PropertySig
Return type
Argument types
Creates an instance PropertySig
Return type
Creates an instance PropertySig
Return type
Arg type #1
Creates an instance PropertySig
Return type
Arg type #1
Arg type #2
Creates an instance PropertySig
Return type
Arg type #1
Arg type #2
Arg type #3
Creates an instance PropertySig
Return type
Argument types
Default constructor
Constructor
Calling convention (must have Property set)
Constructor
true if instance, false if static
Constructor
true if instance, false if static
Return type
Constructor
true if instance, false if static
Return type
Arg type #1
Constructor
true if instance, false if static
Return type
Arg type #1
Arg type #2
Constructor
true if instance, false if static
Return type
Arg type #1
Arg type #2
Arg type #3
Constructor
true if instance, false if static
Return type
Argument types
Constructor
Calling convention
Number of generic parameters
Return type
Argument types
Parameters after sentinel
Clone this
A local variables signature
All local types. This is never null.
Default constructor
Constructor
Calling convention (must have LocalSig set)
Number of locals
Constructor
Local type #1
Constructor
Local type #1
Local type #2
Constructor
Local type #1
Local type #2
Local type #3
Constructor
All locals
Constructor
All locals
Constructor
All locals (this instance now owns it)
Dummy
Clone this
An instantiated generic method signature
Gets the generic arguments (must be instantiated types, i.e., closed types)
Default constructor
Constructor
Calling convention (must have GenericInst set)
Number of generic args
Constructor
Generic arg #1
Constructor
Generic arg #1
Generic arg #2
Constructor
Generic arg #1
Generic arg #2
Generic arg #3
Constructor
Generic args
Constructor
Generic args
Clone this
A high-level representation of a row in the ClassLayout table
The row id in its table
From column ClassLayout.PackingSize
From column ClassLayout.ClassSize
A ClassLayout row created by the user and not present in the original .NET file
Default constructor
Constructor
PackingSize
ClassSize
Created from a row in the ClassLayout table
Constructor
The module which contains this ClassLayout row
Row ID
If is null
If is invalid
A high-level representation of a row in the Constant table
The row id in its table
From column Constant.Type
From column Constant.Value
A Constant row created by the user and not present in the original .NET file
Default constructor
Constructor
Value
Constructor
Value
Type
Created from a row in the Constant table
Constructor
The module which contains this Constant row
Row ID
If is null
If is invalid
Default implementation of
Constructor
The owner module
Constructor
The owner module
Corlib assembly reference or null if a default
assembly reference should be created
Gets the required alignment for the stubs, must be a power of 2
Stub type
Gets the size of a stub, it doesn't have to be a multiple of
Stub type
Gets the offset of the code (entry point) relative to the start of the stub
Stub type
Gets the RVA of the func field that the stub jumps to
Reader, positioned at the stub func
PE image
Updated with RVA of func field
Writes stub relocs, if needed
Stub type
Reloc directory
The chunk where this stub will be written to
Offset of this stub in
Writes the stub that jumps to the managed function
Stub type
Writer
Image base
RVA of this stub
RVA of a pointer-sized field that contains the absolute address of the managed function
A custom attribute
Gets/sets the custom attribute constructor
Gets the attribute type
Gets the full name of the attribute type
true if the raw custom attribute blob hasn't been parsed
Gets the raw custom attribute blob or null if the CA was successfully parsed.
Gets all constructor arguments
true if is not empty
Gets all named arguments (field and property values)
true if is not empty
Gets all s that are field arguments
Gets all s that are property arguments
Gets the #Blob offset or 0 if unknown
Constructor
Custom attribute constructor
Raw custom attribute blob
Constructor
Custom attribute constructor
Constructor
Custom attribute constructor
Constructor arguments or null if none
Constructor
Custom attribute constructor
Named arguments or null if none
Constructor
Custom attribute constructor
Constructor arguments or null if none
Named arguments or null if none
Constructor
Custom attribute constructor
Constructor arguments or null if none
Named arguments or null if none
Original custom attribute #Blob offset or 0
Constructor
Custom attribute constructor
Constructor arguments. The list is now owned by this instance.
Named arguments. The list is now owned by this instance.
Original custom attribute #Blob offset or 0
Gets the field named
Name of field
A instance or null if not found
Gets the field named
Name of field
A instance or null if not found
Gets the property named
Name of property
A instance or null if not found
Gets the property named
Name of property
A instance or null if not found
Gets the property/field named
Name of property/field
true if it's a field, false if it's a property
A instance or null if not found
Gets the property/field named
Name of property/field
true if it's a field, false if it's a property
A instance or null if not found
A custom attribute constructor argument
Gets/sets the argument type
Gets/sets the argument value
Constructor
Argument type
Constructor
Argument type
Argument value
Clones this instance and any s and s
referenced from this instance.
A custom attribute field/property argument
true if it's a field
true if it's a property
Gets/sets the field/property type
Gets/sets the property/field name
Gets/sets the argument
Gets/sets the argument type
Gets/sets the argument value
Default constructor
Constructor
true if field, false if property
Constructor
true if field, false if property
Field/property type
Constructor
true if field, false if property
Field/property type
Name of field/property
Constructor
true if field, false if property
Field/property type
Name of field/property
Field/property argument
Clones this instance and any s referenced from this instance.
Stores s
Default constructor
Constructor
Initial length of the list
Context passed to
Delegate instance that returns original values
Checks whether a custom attribute is present
Full name of custom attribute type
true if the custom attribute type is present, false otherwise
Removes all custom attributes of a certain type
Full name of custom attribute type that should be removed
Finds a custom attribute
Full name of custom attribute type
A or null if it wasn't found
Finds all custom attributes of a certain type
Full name of custom attribute type
All s of the requested type
Finds a custom attribute
Custom attribute type
The first found or null if none found
Finds a custom attribute
Custom attribute type
Attribute type comparison flags
The first found or null if none found
Finds all custom attributes of a certain type
Custom attribute type
All s of the requested type
Finds all custom attributes of a certain type
Custom attribute type
Attribute type comparison flags
All s of the requested type
Searches for a type according to custom attribute search rules: first try the
current assembly, and if that fails, try mscorlib
Constructor
The module to search first
Thrown by CustomAttributeReader when it fails to parse a custom attribute blob
Default constructor
Constructor
Error message
Constructor
Error message
Other exception
Constructor
Reads custom attributes from the #Blob stream
Reads a custom attribute
Reader module
Custom attribute constructor
Offset of custom attribute in the #Blob stream
A new instance
Reads a custom attribute
Reader module
Custom attribute constructor
Offset of custom attribute in the #Blob stream
Generic parameter context
A new instance
Reads a custom attribute
Owner module
CA blob
Custom attribute constructor
A new instance
Reads a custom attribute
Owner module
A reader positioned at the the first byte of the CA blob
Custom attribute constructor
A new instance
Reads a custom attribute
Owner module
CA blob
Custom attribute constructor
Generic parameter context
A new instance
Reads a custom attribute
Owner module
A stream positioned at the the first byte of the CA blob
Custom attribute constructor
Generic parameter context
A new instance
Reads a custom attribute
Owner module
A stream positioned at the the first byte of the CA blob
Custom attribute constructor
Generic parameter context
A new instance
Reads custom attribute named arguments
Owner module
A reader positioned at the the first byte of the CA blob
Number of named arguments to read from
Generic parameter context
A list of s or null if some error
occurred.
Gets the enum's underlying type
An enum type
The underlying type or null if we couldn't resolve the type ref
If is not an enum or null
Converts to a , possibly resolving
a
The type
A or null if we couldn't resolve the
or if is a type spec
A high-level representation of a row in the DeclSecurity table
The row id in its table
From column DeclSecurity.Action
From column DeclSecurity.PermissionSet
Initializes
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
true if is not empty
Gets the blob data or null if there's none
Blob data or null
Returns the .NET 1.x XML string or null if it's not a .NET 1.x format
A DeclSecurity row created by the user and not present in the original .NET file
Default constructor
Constructor
The security action
The security attributes (now owned by this)
Created from a row in the DeclSecurity table
The module where this instance is located
Constructor
The module which contains this DeclSecurity row
Row ID
If is null
If is invalid
Reads DeclSecurity blobs
Reads a DeclSecurity blob
Module that will own the returned list
#Blob offset of DeclSecurity signature
A list of s
Reads a DeclSecurity blob
Module that will own the returned list
#Blob offset of DeclSecurity signature
Generic parameter context
A list of s
Reads a DeclSecurity blob
Module that will own the returned list
DeclSecurity blob
A list of s
Reads a DeclSecurity blob
Module that will own the returned list
DeclSecurity blob
Generic parameter context///
A list of s
Reads a DeclSecurity blob
Module that will own the returned list
DeclSecurity stream that will be owned by us
A list of s
Reads a DeclSecurity blob
Module that will own the returned list
DeclSecurity stream that will be owned by us
Generic parameter context
A list of s
Reads the new (.NET 2.0+) DeclSecurity blob format
Reads the old (.NET 1.x) DeclSecurity blob format
See CorHdr.h/CorElementType
System.Void
System.Boolean
System.Char
System.SByte
System.Byte
System.Int16
System.UInt16
System.Int32
System.UInt32
System.Int64
System.UInt64
System.Single
System.Double
System.String
Pointer type (*)
ByRef type (&)
Value type
Reference type
Type generic parameter
Multidimensional array ([*], [,], [,,], ...)
Generic instance type
Typed byref
Value array (don't use)
System.IntPtr
System.UIntPtr
native real (don't use)
Function pointer
System.Object
Single-dimension, zero lower bound array ([])
Method generic parameter
Required C modifier
Optional C modifier
Used internally by the CLR (don't use)
Module (don't use)
Sentinel (method sigs only)
Pinned type (locals only)
A CIL opcode. If the high byte is 0 or if it's , it's a 1-byte opcode,
else it's a two-byte opcode and the highest byte is the first byte of the opcode.
Extension methods
Converts a to an
The code
A or null if it's invalid
Gets the opcode or if is null
this
Gets the operand or null if is null
this
Gets the offset or 0 if is null
this
Gets the sequence point or null if is null
this
Resolves a token
An object
The metadata token
A or null if is invalid
options
No option is enabled
Some fields/methods have an unknown declaring type and don't have a context with
that information. If this is enabled, the reader will try to guess it but it doesn't
always work. If you get an , try enabling this option.
Reads code from a DynamicMethod
Constructor
Module that will own the method body
This can be one of several supported types: the delegate instance
created by DynamicMethod.CreateDelegate(), a DynamicMethod instance, a RTDynamicMethod
instance or a DynamicResolver instance.
Constructor
Module that will own the method body
This can be one of several supported types: the delegate instance
created by DynamicMethod.CreateDelegate(), a DynamicMethod instance, a RTDynamicMethod
instance or a DynamicResolver instance.
Generic parameter context
Constructor
Module that will own the method body
This can be one of several supported types: the delegate instance
created by DynamicMethod.CreateDelegate(), a DynamicMethod instance, a RTDynamicMethod
instance or a DynamicResolver instance.
Importer
Constructor
Module that will own the method body
This can be one of several supported types: the delegate instance
created by DynamicMethod.CreateDelegate(), a DynamicMethod instance, a RTDynamicMethod
instance or a DynamicResolver instance.
Importer
Options
Reads the code
Returns the created method. Must be called after .
A new instance
A CIL method exception handler
First instruction of try block
One instruction past the end of try block or null if it ends at the end
of the method.
Start of filter handler or null if none. The end of filter handler is
always .
First instruction of try handler block
One instruction past the end of try handler block or null if it ends at the end
of the method.
The catch type if is
Type of exception handler clause
Default constructor
Constructor
Exception clause type
Type of exception handler. See CorHdr.h/CorExceptionFlag
CIL opcode flow control
A CIL instruction (opcode + operand)
The opcode
The opcode operand
Offset of the instruction in the method body
PDB sequence point or null if none
Default constructor
Constructor
Opcode
Constructor
Opcode
The operand
Creates a new instruction with no operand
The opcode
A new instance
Creates a new instruction with a operand
The opcode
The value
A new instance
Creates a new instruction with a operand
The opcode
The value
A new instance
Creates a new instruction with an operand
The opcode
The value
A new instance
Creates a new instruction with a operand
The opcode
The value
A new instance
Creates a new instruction with a operand
The opcode
The value
A new instance
Creates a new instruction with a operand
The opcode
The value
A new instance
Creates a new instruction with a string operand
The opcode
The string
A new instance
Creates a new instruction with an instruction target operand
The opcode
Target instruction
A new instance
Creates a new instruction with an instruction target list operand
The opcode
The targets
A new instance
Creates a new instruction with a type operand
The opcode
The type
A new instance
Creates a new instruction with a type operand
The opcode
The type
A new instance
Creates a new instruction with a method/field operand
The opcode
The method/field
A new instance
Creates a new instruction with a field operand
The opcode
The field
A new instance
Creates a new instruction with a method operand
The opcode
The method
A new instance
Creates a new instruction with a token operand
The opcode
The token
A new instance
Creates a new instruction with a method signature operand
The opcode
The method signature
A new instance
Creates a new instruction with a method parameter operand
The opcode
The method parameter
A new instance
Creates a new instruction with a method local operand
The opcode
The method local
A new instance
Creates a ldci4 instruction
Operand value
A new instance
Gets the size in bytes of the instruction
Updates with the new stack size
Current stack size
Updates with the new stack size
Current stack size
true if the method has a return value,
false otherwise
Calculates stack usage
Updated with number of stack pushes
Updated with number of stack pops or -1 if the stack should
be cleared.
Calculates stack usage
true if method has a return value
Updated with number of stack pushes
Updated with number of stack pops or -1 if the stack should
be cleared.
Checks whether it's one of the leave instructions
Checks whether it's one of the br instructions
Checks whether it's one of the brfalse instructions
Checks whether it's one of the brtrue instructions
Checks whether it's one of the conditional branch instructions (bcc, brtrue, brfalse)
Checks whether this is one of the ldc.i4 instructions
Returns a ldc.i4 instruction's operand
The integer value
isn't one of the
ldc.i4 opcodes
Checks whether it's one of the ldarg instructions, but does not check
whether it's one of the ldarga instructions.
Checks whether it's one of the ldloc instructions, but does not check
whether it's one of the ldloca instructions.
Checks whether it's one of the starg instructions
Checks whether it's one of the stloc instructions
Returns the local if it's a ldloc, stloc or ldloca instruction
The locals
The local or null if it's not a ldloc, stloc or ldloca
instruction or if the local doesn't exist.
Gets the index of the instruction's parameter operand or -1 if the parameter
is missing or if it's not an instruction with a parameter operand.
Returns a method parameter
All parameters
A parameter or null if it doesn't exist
Returns an argument type
Method signature
Declaring type (only needed if it's an instance method)
The type or null if it doesn't exist
Clone this instance. The and fields
are shared by this instance and the created instance.
Converts instructions to strings
Converts an instruction to a string
The instruction
The result
Gets the instruction's operand as a string
The instruction
The operand as a string
Add an instruction's operand to
Place result here
The instruction
Add an instruction's operand to
Place result here
The instruction
A string that will be added before the operand, if there's
an operand.
Thrown when invalid data is detected while parsing a .NET method
Default constructor
Constructor
Error message
Constructor
Error message
The inner exception or null if none
Constructor
A collection of s
Gets the number of locals
Gets the list of locals
Gets the N'th local
The local index
Default constructor
Constructor
All locals that will be owned by this instance
Adds a new local and then returns it
The local that should be added to the list
The input is always returned
A method local
Gets/sets the type of the local
Local index
Gets the name. This property is obsolete, use to get/set the name stored in the PDB file.
Gets the attributes. This property is obsolete, use to get/set the attributes stored in the PDB file.
Constructor
The type
Constructor
The type
Name of local
Constructor
The type
Name of local
Index, should only be used if you don't add it to the locals list
Method body base class
A native method body
Gets/sets the RVA of the native method body
Default constructor
Constructor
RVA of method body
CIL (managed code) body
Size of a small header
Gets/sets a flag indicating whether the original max stack value should be used.
Gets/sets the init locals flag. This is only valid if the method has any locals.
Gets/sets the size in bytes of the method body header. The instructions immediately follow
the header.
true if it was a small body header ( is 1)
true if it was a big body header
Gets/sets max stack value from the fat method header.
Gets/sets the locals metadata token
true if is not empty
Gets the instructions
true if is not empty
Gets the exception handlers
true if is not empty
Gets the locals
Gets/sets the PDB method. This is null if no PDB has been loaded or if there's
no PDB info for this method.
true if is not null
Gets the total size of the body in the PE file, including header, IL bytes, and exception handlers.
This property returns 0 if the size is unknown.
Default constructor
Constructor
Init locals flag
All instructions. This instance will own the list.
All exception handlers. This instance will own the list.
All locals. This instance will own the locals in the list.
Shorter instructions are converted to the longer form, eg. Ldc_I4_1 is
converted to Ldc_I4 with a 1 as the operand.
All method parameters, including the hidden 'this' parameter
if it's an instance method. Use .
Optimizes instructions by using the shorter form if possible. Eg. Ldc_I4 1
will be replaced with Ldc_I4_1.
Short branch instructions are converted to the long form, eg. Beq_S is
converted to Beq.
Optimizes branches by using the smallest possible branch
Updates each instruction's offset
Total size in bytes of all instructions
Reads strings from #US heap
Reads a string from the #US heap
String token
A string
Resolves instruction operands
Reads a .NET method body (header, locals, instructions, exception handlers)
Creates a CIL method body or returns an empty one if doesn't
point to the start of a valid CIL method body.
The operand resolver
A reader positioned at the start of a .NET method body
Use parameters from this method
Creates a CIL method body or returns an empty one if doesn't
point to the start of a valid CIL method body.
The operand resolver
A reader positioned at the start of a .NET method body
Use parameters from this method
Generic parameter context
Creates a CIL method body or returns an empty one if doesn't
point to the start of a valid CIL method body.
The operand resolver
A reader positioned at the start of a .NET method body
Method parameters
Creates a CIL method body or returns an empty one if doesn't
point to the start of a valid CIL method body.
The operand resolver
A reader positioned at the start of a .NET method body
Method parameters
Generic parameter context
Creates a CIL method body or returns an empty one if is not
a valid CIL method body.
The operand resolver
All code
Exceptions or null if all exception handlers are in
Method parameters
Creates a CIL method body or returns an empty one if is not
a valid CIL method body.
The operand resolver
All code
Exceptions or null if all exception handlers are in
Method parameters
Generic parameter context
Creates a CIL method body or returns an empty one if doesn't
point to the start of a valid CIL method body.
The operand resolver
A reader positioned at the start of a .NET method body
Exception handler reader or null if exceptions aren't
present or if contains the exception handlers
Method parameters
Creates a CIL method body or returns an empty one if doesn't
point to the start of a valid CIL method body.
The operand resolver
A reader positioned at the start of a .NET method body
Exception handler reader or null if exceptions aren't
present or if contains the exception handlers
Method parameters
Generic parameter context
Creates a CIL method body or returns an empty one if is not
a valid CIL method body.
The operand resolver
All code
Exceptions or null if all exception handlers are in
Method parameters
Method header flags, eg. 2 if tiny method
Max stack
Code size
Local variable signature token or 0 if none
Creates a CIL method body or returns an empty one if is not
a valid CIL method body.
The operand resolver
All code
Exceptions or null if all exception handlers are in
Method parameters
Method header flags, eg. 2 if tiny method
Max stack
Code size
Local variable signature token or 0 if none
Generic parameter context
Constructor
The operand resolver
A reader positioned at the start of a .NET method body
Use parameters from this method
Constructor
The operand resolver
A reader positioned at the start of a .NET method body
Use parameters from this method
Generic parameter context
Constructor
The operand resolver
A reader positioned at the start of a .NET method body
Method parameters
Constructor
The operand resolver
A reader positioned at the start of a .NET method body
Method parameters
Generic parameter context
Constructor
The operand resolver
A reader positioned at the start of a .NET method body
Exception handler reader or null if exceptions aren't
present or if contains the exception handlers
Method parameters
Constructor
The operand resolver
A reader positioned at the start of a .NET method body
Exception handler reader or null if exceptions aren't
present or if contains the exception handlers
Method parameters
Generic parameter context
Initializes the method header
Header flags, eg. 2 if it's a tiny method
Max stack
Code size
Local variable signature token
Reads the method body header, locals, all instructions, and the exception handlers (if any)
true if it worked, and false if something failed
Reads the method header
Reads the locals
All locals or null if there are none
Reads all instructions
Reads all exception handlers
Creates a CIL body. Must be called after , and can only be
called once.
A new instance
Method body reader base class
The method reader
All parameters
All locals
All instructions
All exception handlers
First byte after the end of the code
Start offset of method
Gets all parameters
Gets all locals
Gets all instructions
Gets all exception handlers
Constructor
Constructor
The reader
Constructor
The reader
Method parameters or null if they're not known yet
Sets new locals
A list of types of all locals or null if none
Sets new locals
A list of types of all locals or null if none
Reads all instructions
Number of instructions to read
Reads all instructions
Size of code
Fixes all branch instructions so their operands are set to an
instead of an offset.
Finds an instruction
Offset of instruction
The instruction or null if there's no instruction at .
Finds an instruction and throws if it's not present
Offset of instruction
The instruction
There's no instruction at
Reads the next instruction
Reads the next OpCode from the current position
Reads the instruction operand (if any)
The instruction
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a (a parameter) operand
The current instruction
The operand
Reads a (a local) operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a operand
The current instruction
The operand
Reads a (a parameter) operand
The current instruction
The operand
Reads a (a local) operand
The current instruction
The operand
Returns true if it's one of the ldarg/starg instructions that have an operand
The instruction to check
Returns a parameter
A parameter index
A or null if is invalid
Returns a local
A local index
A or null if is invalid
Add an exception handler if it appears valid
The exception handler
true if it was added, false otherwise
Gets the offset of an instruction
The instruction or null if the offset is the first offset
at the end of the method.
The instruction offset
Restores a 's body with the parsed method instructions
and exception handlers
The method that gets updated with the instructions, locals, and
exception handlers.
Converts a type address to a . The address can be found in
RuntimeTypeHandle.Value and it's the same address you use with the WinDbg SOS command
!dumpmt.
Converts to a .
Address of type
The or null
Instruction utility methods
Shorter instructions are converted to the longer form, eg. Ldc_I4_1 is
converted to Ldc_I4 with a 1 as the operand.
All instructions
All locals
All method parameters, including the hidden 'this' parameter
if it's an instance method. Use .
Optimizes instructions by using the shorter form if possible. Eg. Ldc_I4 1
will be replaced with Ldc_I4_1.
All instructions
Short branch instructions are converted to the long form, eg. Beq_S is
converted to Beq.
All instructions
Optimizes branches by using the smallest possible branch
All instructions
Updates each instruction's offset
All instructions
Total size in bytes of all instructions
A CIL opcode
The opcode name
The opcode as a enum
Operand type
Flow control info
Opcode type
Push stack behavior
Pop stack behavior
Gets the value which is compatible with
Gets the size of the opcode. It's either 1 or 2 bytes.
Creates a new instruction with no operand
A new instance
Creates a new instruction with a operand
The value
A new instance
Creates a new instruction with a operand
The value
A new instance
Creates a new instruction with an operand
The value
A new instance
Creates a new instruction with a operand
The value
A new instance
Creates a new instruction with a operand
The value
A new instance
Creates a new instruction with a operand
The value
A new instance
Creates a new instruction with a string operand
The string
A new instance
Creates a new instruction with an instruction target operand
Target instruction
A new instance
Creates a new instruction with an instruction target list operand
The targets
A new instance
Creates a new instruction with a type operand
The type
A new instance
Creates a new instruction with a type operand
The type
A new instance
Creates a new instruction with a method/field operand
The method/field
A new instance
Creates a new instruction with a field operand
The field
A new instance
Creates a new instruction with a method operand
The method
A new instance
Creates a new instruction with a token operand
The token
A new instance
Creates a new instruction with a method signature operand
The method signature
A new instance
Creates a new instruction with a method parameter operand
The method parameter
A new instance
Creates a new instruction with a method local operand
The method local
A new instance
Contains all valid CIL opcodes
All one-byte opcodes
All two-byte opcodes (first byte is 0xFE)
CIL opcode type
CIL opcode operand type
4-byte relative instruction offset
4-byte field token ( or )
int32
int64
4-byte method token (,
or )
No operand
Never used
64-bit real
4-byte method sig token ()
4-byte string token (0x70xxxxxx)
4-byte count N followed by N 4-byte relative instruction offsets
4-byte token (, ,
, , ,
or )
4-byte type token (, or
)
2-byte param/local index
1-byte relative instruction offset
1-byte sbyte () or byte (the rest)
32-bit real
1-byte param/local index
CIL opcode stack behavior
Event attributes, see CorHdr.h/CorEventAttr
event is special. Name describes how.
Runtime(metadata internal APIs) should check name encoding.
A high-level representation of a row in the Event table
The row id in its table
From column Event.EventFlags
From column Event.Name
Name
From column Event.EventType
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
Gets/sets the adder method
Gets/sets the invoker method
Gets/sets the remover method
Gets the other methods
Initializes , ,
and .
Reset , , ,
true if there are no methods attached to this event
true if is not empty
Gets/sets the declaring type (owner type)
Called by and should normally not be called by any user
code. Use instead. Only call this if you must set the
declaring type without inserting it in the declaring type's method list.
Gets the full name of the event
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the bit
Gets/sets the bit
An Event row created by the user and not present in the original .NET file
Default constructor
Constructor
Name
Constructor
Name
Type
Constructor
Name
Type
Flags
Created from a row in the Event table
The module where this instance is located
Constructor
The module which contains this Event row
Row ID
If is null
If is invalid
A high-level representation of a row in the ExportedType table
The row id in its table
The owner module
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
Always returns false since a does not contain any
or .
From column ExportedType.Flags
Attributes
From column ExportedType.TypeDefId
From column ExportedType.TypeName
From column ExportedType.TypeNamespace
From column ExportedType.Implementation
Called to initialize
true if it's nested within another
Gets the declaring type, if any
Modify property: =
( & ) | .
Value to AND
Value to OR
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the visibility
true if is set
true if is set
true if is set
true if is set
true if is set
true if is set
true if is set
true if is set
Gets/sets the layout
true if is set
true if is set
true if is set
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the string format
true if is set
true if is set
true if is set
true if is set
Gets/sets the bit
Gets/sets the bit. See also
Gets/sets the bit
Gets/sets the bit
true if this type has been moved to another assembly
Resolves the type
A instance or null if it couldn't be resolved
Resolves the type
Source module or null
A instance or null if it couldn't be resolved
Resolves the type
A instance
If the type couldn't be resolved
Converts this instance to a
A new instance
An ExportedType row created by the user and not present in the original .NET file
Constructor
Owner module
Constructor
Owner module
TypeDef ID
Type name
Type namespace
Flags
Implementation
Created from a row in the ExportedType table
The module where this instance is located
Constructor
The module which contains this ExportedType row
Row ID
If is null
If is invalid
Field flags, see CorHdr.h/CorFieldAttr
member access mask - Use this mask to retrieve accessibility information.
Member not referenceable.
Member not referenceable.
Accessible only by the parent type.
Accessible by sub-types only in this Assembly.
Accessibly by anyone in the Assembly.
Accessible only by type and sub-types.
Accessibly by sub-types anywhere, plus anyone in assembly.
Accessibly by anyone who has visibility to this scope.
Defined on type, else per instance.
Field may only be initialized, not written to after init.
Value is compile time constant.
Field does not have to be serialized when type is remoted.
field is special. Name describes how.
Implementation is forwarded through pinvoke.
Runtime(metadata internal APIs) should check name encoding.
Field has marshalling information.
Field has default.
Field has RVA.
A high-level representation of a row in the Field table
The row id in its table
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
From column Field.Flags
Attributes
From column Field.Name
Name
From column Field.Signature
Gets/sets the field layout offset
Called to initialize
Called to initialize
Reset
Gets/sets the field RVA
Called to initialize
Reset
Gets/sets the initial value. Be sure to set to true if
you write to this field.
Called to initialize
Reset
Called to initialize
Called to initialize
Reset
Gets/sets the declaring type (owner type)
Called by and should normally not be called by any user
code. Use instead. Only call this if you must set the
declaring type without inserting it in the declaring type's method list.
Gets/sets the
true if is not null
true if is not null
Gets the constant element type or if there's no constant
true if is not null
Gets/sets the field type
Modify field: =
( & ) | .
Value to AND
Value to OR
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the field access
true if is set
true if is set
true if is set
true if is set
true if is set
true if is set
true if is set
true if is set
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Returns the full name of this field
Gets the size of this field in bytes or 0 if unknown.
Gets the size of this field in bytes or 0 if unknown.
Updated with size
true if is valid, false otherwise
Gets the size of this field in bytes or 0 if unknown.
The declaring type of this
The field signature of this
Updated with size
true if is valid, false otherwise
Gets the size of this field in bytes or 0 if unknown.
The declaring type of this
The field signature of this
Size of a pointer
Updated with size
true if is valid, false otherwise
A Field row created by the user and not present in the original .NET file
Default constructor
Constructor
Name
Constructor
Name
Signature
Constructor
Name
Signature
Flags
Created from a row in the Field table
The module where this instance is located
Constructor
The module which contains this Field row
Row ID
If is null
If is invalid
File row flags. See CorHdr.h/CorFileFlags
This is not a resource file
This is a resource file or other non-metadata-containing file
A high-level representation of a row in the File table
The row id in its table
From column File.Flags
Attributes
From column File.Name
Name
From column File.HashValue
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the bit
Gets/sets the bit
A File row created by the user and not present in the original .NET file
Default constructor
Constructor
Name of file
Flags
File hash
Created from a row in the File table
The module where this instance is located
Constructor
The module which contains this File row
Row ID
If is null
If is invalid
Redirects .NET framework assembly references from older to newer versions
Redirects a .NET Framework assembly from an older version to the correct version
loaded at runtime.
Current assembly reference that might get updated
Module using the assembly reference
Tries to redirect a .NET Framework assembly from an older version to the correct version
loaded at runtime.
Assembly reference
Module using the assembly reference
Updated with the redirected assembly if successful
Redirects a .NET Framework 2.0-3.5 assembly from an older version to the correct version
loaded at runtime.
Current assembly reference that might get updated
Redirects a .NET Framework 4.0+ assembly from an older version to the correct version
loaded at runtime.
Current assembly reference that might get updated
Tries to redirect a .NET Framework 2.0-3.5 assembly from an older version to the correct version
loaded at runtime.
Assembly reference
Updated with the redirected assembly if successful
Tries to redirect a .NET Framework 4.0+ assembly from an older version to the correct version
loaded at runtime.
Assembly reference
Updated with the redirected assembly if successful
Helps create a name
Checks whether the assembly name should be included when printing
the full type name. The assembly name isn't required in custom attributes
when the type already exists in the same module as the CA, or if the type
exists in mscorlib.
The type (TypeDef, TypeRef or ExportedType)
or null
true if the assembly name must be included, false otherwise
Creates type names, method names, etc.
Checks whether the assembly name should be included when printing the full name.
See for more info.
Owner module
The type (TypeDef, TypeRef or ExportedType)
or null
true if the assembly name must be included, false otherwise
Checks whether the assembly name should be included when printing the full name.
See for more info.
Owner module
The type (TypeDef, TypeRef or ExportedType)
or null
If false, don't add an assembly name if it's a type in ,
if true, don't add an assembly name if it's a type in or the corlib.
true if the assembly name must be included, false otherwise
Returns the full name of a
The TypeRef
Set if output should be compatible with reflection
Helps print the name
String builder to use or null
The full name
Returns the full name of a
The TypeRef
Set if output should be compatible with reflection
Helps print the name
String builder to use or null
The full name
Returns the name of a
The TypeRef
Set if output should be compatible with reflection
String builder to use or null
The full name
Returns the name of a
The TypeRef
Set if output should be compatible with reflection
String builder to use or null
The full name
Returns the namespace of a
The TypeRef
Set if output should be compatible with reflection
String builder to use or null
The full name
Returns the namespace of a
The TypeRef
Set if output should be compatible with reflection
String builder to use or null
The full name
Returns the assembly qualified full name of a
The IType
Helps print the name
String builder to use or null
The assembly qualified full name
Returns the assembly qualified full name of a
The IType
Helps print the name
String builder to use or null
The assembly qualified full name
Returns the full name of a property
Declaring type full name or null if none
Name of property
Property signature
Type generic arguments or null if none
String builder to use or null
Property full name
Returns the full name of a property
Declaring type full name or null if none
Name of property
Property signature
Type generic arguments or null if none
String builder to use or null
Property full name
Returns the full name of a property
Declaring type full name or null if none
Name of property
Event type
Type generic arguments or null if none
String builder to use or null
Property full name
Returns the full name of a property
Declaring type full name or null if none
Name of property
Event type
Type generic arguments or null if none
String builder to use or null
Property full name
Returns the full name of a field
Declaring type full name or null if none
Name of field
Field signature
Type generic arguments or null if none
String builder to use or null
Field full name
Returns the full name of a field
Declaring type full name or null if none
Name of field
Field signature
Type generic arguments or null if none
String builder to use or null
Field full name
Returns the full name of a method
Declaring type full name or null if none
Name of method or null if none
Method signature
Type generic arguments or null if none
Method generic arguments or null if none
Generic parameter owner method or null
String builder to use or null
Method full name
Returns the full name of a method
Declaring type full name or null if none
Name of method or null if none
Method signature
Type generic arguments or null if none
Method generic arguments or null if none
Generic parameter owner method or null
String builder to use or null
Method full name
Returns the full name of a property sig
Property sig
String builder to use or null
Property sig full name
Returns the full name of a property sig
Property sig
String builder to use or null
Property sig full name
Returns the full name of a sig
Declaring type or null
Name or null
Method sig
Owner method or null
String builder to use or null
Sig full name
Returns the full name of a sig
Declaring type or null
Name or null
Method sig
Owner method or null
String builder to use or null
Sig full name
Returns the namespace of a
The TypeRef
Set if output should be compatible with reflection
String builder to use or null
The namespace
Returns the namespace of a
The TypeRef
Set if output should be compatible with reflection
String builder to use or null
The namespace
Returns the name of a
The TypeRef
Set if output should be compatible with reflection
String builder to use or null
The name
Returns the name of a
The TypeRef
Set if output should be compatible with reflection
String builder to use or null
The name
Returns the full name of a
The TypeRef
Set if output should be compatible with reflection
Helps print the name
String builder to use or null
The full name
Returns the full name of a
The TypeRef
Set if output should be compatible with reflection
Helps print the name
String builder to use or null
The full name
Returns the assembly qualified full name of a
The TypeRef
Helps print the name
String builder to use or null
The assembly qualified full name
Returns the assembly qualified full name of a
The TypeRef
Helps print the name
String builder to use or null
The assembly qualified full name
Returns the assembly where this type is defined
The TypeRef
A or null if none found
Gets the scope
The TypeRef
The or null if none found
Returns the owner module. The type was created from metadata in this module.
The TypeRef
A or null if none found
Returns the namespace of a
The TypeDef
Set if output should be compatible with reflection
String builder to use or null
The namespace
Returns the namespace of a
The TypeDef
Set if output should be compatible with reflection
String builder to use or null
The namespace
Returns the name of a
The TypeDef
Set if output should be compatible with reflection
String builder to use or null
The name
Returns the name of a
The TypeDef
Set if output should be compatible with reflection
String builder to use or null
The name
Returns the full name of a
The TypeDef
Set if output should be compatible with reflection
Helps print the name
String builder to use or null
The full name
Returns the full name of a
The TypeDef
Set if output should be compatible with reflection
Helps print the name
String builder to use or null
The full name
Returns the assembly qualified full name of a
The TypeDef
Helps print the name
String builder to use or null
The assembly qualified full name
Returns the assembly qualified full name of a
The TypeDef
Helps print the name
String builder to use or null
The assembly qualified full name
Returns the assembly where this type is defined
The TypeDef
A or null if none found
Returns the owner module. The type was created from metadata in this module.
The TypeDef
A or null if none found
Returns the namespace of a
The TypeSpec
Set if output should be compatible with reflection
String builder to use or null
The namespace
Returns the namespace of a
The TypeSpec
Set if output should be compatible with reflection
String builder to use or null
The namespace
Returns the name of a
The TypeSpec
Set if output should be compatible with reflection
String builder to use or null
The name
Returns the name of a
The TypeSpec
Set if output should be compatible with reflection
String builder to use or null
The name
Returns the full name of a
The TypeSpec
Set if output should be compatible with reflection
Helps print the name
String builder to use or null
The full name
Returns the full name of a
The TypeSpec
Set if output should be compatible with reflection
Helps print the name
String builder to use or null
The full name
Returns the assembly qualified full name of a
The TypeSpec
Helps print the name
String builder to use or null
The assembly qualified full name
Returns the assembly qualified full name of a
The TypeSpec
Helps print the name
String builder to use or null
The assembly qualified full name
Returns the assembly where this type is defined
The TypeSpec
A or null if none found
Gets the scope type
The TypeSpec
The scope type or null if none found
Gets the scope
The TypeSpec
The or null if none found
Returns the owner module. The type was created from metadata in this module.
The TypeSpec
A or null if none found
Returns the namespace of a
The type sig
Set if output should be compatible with reflection
String builder to use or null
The namespace
Returns the namespace of a
The type sig
Set if output should be compatible with reflection
String builder to use or null
The namespace
Returns the name of a
The type sig
Set if output should be compatible with reflection
String builder to use or null
The name
Returns the name of a
The type sig
Set if output should be compatible with reflection
String builder to use or null
The name
Returns the full name of a
The type sig
Set if output should be compatible with reflection
Helps print the name
Type generic args or null if none
Method generic args or null if none
String builder to use or null
The full name
Returns the full name of a
The type sig
Set if output should be compatible with reflection
Helps print the name
Type generic args or null if none
Method generic args or null if none
String builder to use or null
The full name
Returns the assembly qualified full name of a
The TypeSig
Helps print the name
String builder to use or null
The assembly qualified full name
Returns the assembly qualified full name of a
The TypeSig
Helps print the name
String builder to use or null
The assembly qualified full name
Returns the assembly where this type is defined
The TypeSig
A or null if none found
Gets the scope
The TypeSig
The or null if none found
Gets the scope type
The TypeSig
The scope type or null if none found
Returns the owner module. The type was created from metadata in this module.
The TypeSig
A or null if none found
Returns the namespace of a
The ExportedType
Set if output should be compatible with reflection
String builder to use or null
The namespace
Returns the namespace of a
The ExportedType
Set if output should be compatible with reflection
String builder to use or null
The namespace
Returns the name of a
The ExportedType
Set if output should be compatible with reflection
String builder to use or null
The name
Returns the name of a
The ExportedType
Set if output should be compatible with reflection
String builder to use or null
The name
Returns the full name of a
The ExportedType
Set if output should be compatible with reflection
Helps print the name
String builder to use or null
The full name
Returns the full name of a
The ExportedType
Set if output should be compatible with reflection
Helps print the name
String builder to use or null
The full name
Returns the assembly qualified full name of a
The ExportedType
Helps print the name
String builder to use or null
The assembly qualified full name
Returns the assembly qualified full name of a
The ExportedType
Helps print the name
String builder to use or null
The assembly qualified full name
Returns the assembly where this type is defined
The ExportedType
A or null if none found
Gets the scope type
The ExportedType
The scope type or null if none found
Gets the scope
The ExportedType
The or null if none found
Returns the owner module. The type was created from metadata in this module.
The ExportedType
A or null if none found
Constructor
true if it's for generic types, false if generic methods
Pushes generic arguments
The generic arguments
Pops generic arguments
The popped generic arguments
Resolves a generic argument
Generic variable number
A or null if none was found
Replaces generic type/method var with its generic argument
Pushes generic arguments
The generic arguments
Pops generic arguments
The popped generic arguments
Pushes generic arguments
The generic arguments
Pops generic arguments
The popped generic arguments
Replaces a generic type/method var with its generic argument (if any). If
isn't a generic type/method var or if it can't
be resolved, it itself is returned. Else the resolved type is returned.
Type signature
New which is never null unless
is null
A high-level representation of a row in the GenericParam table
The row id in its table
Gets the owner type/method
Gets the declaring type or null if none or if is
not a
Gets the declaring method or null if none or if is
not a
From column GenericParam.Number
From column GenericParam.Flags
Attributes
From column GenericParam.Name
Name
From column GenericParam.Kind (v1.1 only)
Gets the generic param constraints
Initializes
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
true if is not empty
Modify property: =
( & ) | .
Value to AND
Value to OR
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets variance (non, contra, co)
true if is set
true if is set
true if is set
Gets/sets the special constraint
true if there are no special constraints
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
A GenericParam row created by the user and not present in the original .NET file
Default constructor
Constructor
The generic param number
Constructor
The generic param number
Flags
Constructor
The generic param number
Flags
Name
Created from a row in the GenericParam table
The module where this instance is located
Constructor
The module which contains this GenericParam row
Row ID
If is null
If is invalid
Generic parameter flags. See CorHdr.h/CorGenericParamAttr
type argument must be a reference type
type argument must be a value type but not Nullable
type argument must have a public default constructor
A high-level representation of a row in the GenericParamConstraint table
The row id in its table
Gets the owner generic param
From column GenericParamConstraint.Constraint
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
A GenericParamConstraintAssembly row created by the user and not present in the original .NET file
Default constructor
Constructor
The constraint
Created from a row in the GenericParamConstraint table
The module where this instance is located
Constructor
The module which contains this GenericParamConstraint row
Row ID
Generic parameter context
If is null
If is invalid
Generic parameter context
Type context
Method context
true if and are both null
Creates a new instance and initializes the
field to 's
and the field to .
Method
A new instance
Creates a new instance and initializes the
field to and the field
to null
Type
A new instance
Constructor
Type context
Constructor. The field is set to null and NOT to
's . Use
if you want that behavior.
Method context
Constructor
Type context
Method context
Resolves assemblies
Finds and returns an
The assembly to find
The module that needs to resolve an assembly or null
An instance owned by the assembly resolver or
null if the assembly couldn't be found.
The table row can be referenced by a MD token
Returns the metadata token
Gets/sets the row ID
All *MD classes implement this interface.
Gets the original row ID
An assembly. Implemented by , and
.
The assembly version
Assembly flags
Public key or public key token
Locale, aka culture
Gets the full name of the assembly but use a public key token
Gets/sets the bit
Gets/sets the processor architecture
Gets/sets the processor architecture
true if unspecified processor architecture
true if neutral (PE32) architecture
true if x86 (PE32) architecture
true if IA-64 (PE32+) architecture
true if x64 (PE32+) architecture
true if ARM (PE32) architecture
true if eg. reference assembly (not runnable)
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the content type
true if content type is Default
true if content type is WindowsRuntime
Implemented by and , which are the only
valid managed entry point tokens.
Interface to access a module def/ref
Type of scope
It's an instance
It's a instance
It's a instance
Implemented by modules and assemblies
Gets the scope type
Gets the scope name
Interface to get the full name of a type, field, or method
Gets the full name
Simple name of implementer
Implemented by all member refs and types
Gets the owner module
Methods to check whether the implementer is a type or a method.
true if it's a type
true if it's a method
Implemented by types, fields, methods, properties, events
Gets the declaring type
true if it's a or a that's
referencing a field.
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
All member definitions implement this interface: ,
, , ,
, and .
Gets the declaring type
Implemented by the following classes: ,
, , ,
, , ,
and
Implemented by types and methods
Gets the number of generic parameters / arguments
Implemented by fields ( and )
Gets/sets the field signature
Implemented by methods (, and )
Method signature
Implemented by tables that can be a token in the ldtoken instruction
The table row can be referenced by a coded token
TypeDefOrRef coded token interface
The coded token tag
HasConstant coded token interface
The coded token tag
Gets/sets the constant value
HasCustomAttribute coded token interface
The coded token tag
Gets all custom attributes
true if is not empty
HasFieldMarshal coded token interface
The coded token tag
Gets/sets the marshal type
true if is not null
HasDeclSecurity coded token interface
The coded token tag
Gets the permission sets
true if is not empty
MemberRefParent coded token interface
The coded token tag
HasSemantic coded token interface
The coded token tag
MethodDefOrRef coded token interface
The coded token tag
MemberForwarded coded token interface
The coded token tag
Gets/sets the impl map
true if is not null
Implementation coded token interface
The coded token tag
CustomAttributeType coded token interface
The coded token tag
ResolutionScope coded token interface
The coded token tag
TypeOrMethodDef coded token interface
The coded token tag
Gets the generic parameters
true if is not empty
HasCustomDebugInformation interface
The custom debug information tag
Gets the custom debug infos
true if is not empty
Access to .NET core library's simple types
Gets a System.Void
Gets a System.Boolean
Gets a System.Char
Gets a System.SByte
Gets a System.Byte
Gets a System.Int16
Gets a System.UInt16
Gets a System.Int32
Gets a System.UInt32
Gets a System.Int64
Gets a System.UInt64
Gets a System.Single
Gets a System.Double
Gets a System.String
Gets a System.TypedReference
Gets a System.IntPtr
Gets a System.UIntPtr
Gets a System.Object
Gets the assembly reference to the core library
Gets a that references a type in the core library assembly
Namespace of type (eg. "System")
Name of type
A instance. This instance may be a cached instance.
Custom attribute interface. Implemented by and
Gets the attribute type
Gets the full name of the attribute type
Gets all named arguments (field and property values)
true if is not empty
Gets all s that are field arguments
Gets all s that are property arguments
Interface to decrypt methods
Gets the method's body
Method rid
The found in the method's Method row
The method's parameters
Generic parameter context
Updated with the method's if this
method returns true
true if the method body was decrypted, false if the method isn't
encrypted and the default body reader code should be used.
Interface to decrypt strings
Reads a string
String token
A string or null if we should read it from the #US heap
events
An error was detected. An exception should normally be thrown but the error
can be ignored.
Just a warning and can be ignored.
A normal message
A verbose message
A very verbose message
Simple logger
Log something
Caller or null
Logger event
Format
Arguments
true if this event is ignored. If the event is ignored, the caller can
choose not to call . This is useful if it can take time to
prepare the message.
The logger event
Dummy logger which ignores all messages, but can optionally throw on errors.
It ignores everything and doesn't throw anything.
Throws a on errors, but ignores anything else.
Constructor
If non-null, this exception type is thrown on
errors. It must have a public constructor that takes a as the only
argument.
A high-level representation of a row in the ImplMap table
The row id in its table
From column ImplMap.MappingFlags
Attributes
From column ImplMap.ImportName
Name
From column ImplMap.ImportScope
Modify property: =
( & ) | .
Value to AND
Value to OR
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the bit
Gets/sets the char set
true if is set
true if is set
true if is set
true if is set
Gets/sets best fit
true if is set
true if is set
true if is set
Gets/sets throw on unmappable char
true if is set
true if is set
true if is set
Gets/sets the bit
Gets/sets calling convention
true if is set
true if is set
true if is set
true if is set
true if is set
Checks whether this is a certain P/Invoke method
Name of the DLL
Name of the function within the DLL
true if it's the specified P/Invoke method, else false
Checks whether this is a certain P/Invoke method
Name of the DLL
Name of the function within the DLL
Treat as Windows
true if it's the specified P/Invoke method, else false
An ImplMap row created by the user and not present in the original .NET file
Default constructor
Constructor
Scope
Name
Flags
Created from a row in the ImplMap table
Constructor
The module which contains this ImplMap row
Row ID
If is null
If is invalid
options
Use s whenever possible if the is located
in this module.
Use s whenever possible if the is located
in this module.
Use s whenever possible if the is located
in this module.
Use s, s and s
whenever possible if the definition is located in this module.
Don't set this flag. For internal use only.
Re-maps entities that were renamed in the target module
Matches source to the one that is already present in the target module under a different name.
referenced by the entity that is being imported.
matching or null if there's no match.
Matches source to the one that is already present in the target module under a different name.
referenced by the entity that is being imported.
matching or null if there's no match.
Matches source to the one that is already present in the target module under a different name.
referenced by the entity that is being imported.
matching or null if there's no match.
Matches source to the one that is already present in the target module under a different name.
referenced by the entity that is being imported.
matching or null if there's no match.
Overrides default behavior of
May be used to use reference assemblies for resolution, for example.
to create for.
or null to use default 's type resolution
Imports s, s, s
and s as references
Constructor
The module that will own all references
Constructor
The module that will own all references
Generic parameter context
Constructor
The module that will own all references
Importer options
Constructor
The module that will own all references
Importer options
Generic parameter context
Constructor
The module that will own all references
Importer options
Generic parameter context
Mapper for renamed entities
Imports a as a . If it's a type that should be
the declaring type of a field/method reference, call instead.
The type
The imported type or null if is invalid
Imports a as a . Should be called if it's the
declaring type of a method/field reference. See also
The type
Imports a as a
The type
A list of all required modifiers or null
A list of all optional modifiers or null
The imported type or null if is invalid
Imports a as a
The type
The imported type or null if is invalid
Imports a as a
The type
A list of all required modifiers or null
A list of all optional modifiers or null
The imported type or null if is invalid
Imports a as a . This will be either
a or a .
The method
The imported method or null if is invalid
or if we failed to import the method
Imports a as a . This will be either
a or a .
The method
Always verify method signature to make sure the
returned reference matches the metadata in the source assembly
The imported method or null if is invalid
or if we failed to import the method
Imports a as a
The field
The imported field or null if is invalid
or if we failed to import the field
Imports a as a
The field
Always verify field signature to make sure the
returned reference matches the metadata in the source assembly
The imported field or null if is invalid
or if we failed to import the field
Imports a
The type
The imported type or null
Imports a as a
The type
The imported type or null
Imports a
The type
The imported type or null
Imports a
The type
The imported type or null
Imports a
The type
The imported type or null
Imports a
The type
The imported type or null
Imports a
The sig
The imported sig or null if input is invalid
Imports a
The sig
The imported sig or null if input is invalid
Imports a
The sig
The imported sig or null if input is invalid
Imports a
The sig
The imported sig or null if input is invalid
Imports a
The sig
The imported sig or null if input is invalid
Imports a
The sig
The imported sig or null if input is invalid
Imports a
The field
The imported type or null if is invalid
Imports a
The method
The imported method or null if is invalid
Imports a as an
The field
The imported type or null if is invalid
Imports a as an
The method
The imported method or null if is invalid
Imports a
The method
The imported method or null if is invalid
Imports a
The member ref
The imported member ref or null if is invalid
A high-level representation of a row in the InterfaceImpl table
The row id in its table
From column InterfaceImpl.Interface
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
An InterfaceImpl row created by the user and not present in the original .NET file
Default constructor
Constructor
The interface the type implements
Created from a row in the InterfaceImpl table
The module where this instance is located
Constructor
The module which contains this InterfaceImpl row
Row ID
Generic parameter context
If is null
If is invalid
Resolves types, methods, fields
Resolves types
Resolves a type
The type
The module that needs to resolve the type or null
A instance or null if it couldn't be resolved
Resolves fields and methods
Resolves a method or a field
A method/field reference
A or a instance or null
if it couldn't be resolved.
Resolves tokens
Resolves a token
The metadata token
Generic parameter context
A or null if is invalid
Interface to get the full name of a type
true if it's a value type
Returns the name of this type
Returns the reflection name of this type
Returns the namespace of this type
Returns the reflection namespace of this type
Returns the reflection name of this type. See also .
Returns the reflection name of this type, and includes the assembly name where the
type is located. It can be passed to to
load the type.
Gets the assembly where this type is defined
Gets the scope, which is different from since it
can differentiate between modules within the same assembly.
Gets the type whose scope is returned by and whose assembly
is returned by . This is always a
, or null. It can also be a
nested .
For example, if this type is a System.String&, then this value is a System.String.
If it's a generic instance type (eg. List<int>), then the generic type is
returned (eg. List<T>). In other words, the first or
that is found (without searching generic arguments) is returned.
true if it's an integer or a floating point type
Implemented by types and calling convention signatures.
true if this contains a or a .
Finds s
Finds a
Full name of the type (no assembly information)
true if it's a reflection name, and nested
type names are separated by a + character. If false, nested type names
are separated by a / character.
An existing or null if it wasn't found.
Finds a . 's scope (i.e., module or
assembly) is ignored when looking up the type.
The type ref
An existing or null if it wasn't found.
Interface to access a local or a parameter
Gets the variable type
Gets the 0-based position
Gets/sets the variable name
A high-level representation of a row in the ManifestResource table
The row id in its table
From column ManifestResource.Offset
From column ManifestResource.Flags
Attributes
From column ManifestResource.Name
Name
From column ManifestResource.Implementation
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
Modify property: =
( & ) | .
Value to AND
Value to OR
Gets/sets the visibility
true if is set
true if is set
A ManifestResource row created by the user and not present in the original .NET file
Default constructor
Constructor
Name
Implementation
Constructor
Name
Implementation
Flags
Constructor
Name
Implementation
Flags
Offset
Created from a row in the ManifestResource table
The module where this instance is located
Constructor
The module which contains this ManifestResource row
Row ID
If is null
If is invalid
ManifestResource flags. See CorHdr.h/CorManifestResourceFlags
The Resource is exported from the Assembly.
The Resource is private to the Assembly.
Reads s
Reads a from the #Blob heap
Module
Blob offset
A new instance
Reads a from the #Blob heap
Module
Blob offset
Generic parameter context
A new instance
Reads a from
Owner module
Marshal data
A new instance
Reads a from
Owner module
Marshal data
Generic parameter context
A new instance
Reads a from
Owner module
A reader that will be owned by us
A new instance
Reads a from
Owner module
A reader that will be owned by us
Generic parameter context
A new instance
Base class of all marshal types
The native type
Gets the
Constructor
Native type
Contains the raw marshal blob data
Gets/sets the raw data
Constructor
Raw data
A marshal type
Gets/sets the size
true if is valid
Default constructor
Constructor
Size
A marshal type
Gets/sets the variant type
Gets/sets the user-defined sub type (it's usually null)
true if is valid
true if is valid
Default constructor
Constructor
Variant type
Constructor
User-defined sub type
Constructor
Variant type
User-defined sub type
A marshal type
Gets/sets the element type
Gets/sets the size
true if is valid
true if is valid
Default constructor
Constructor
Size
Constructor
Size
Element type
A marshal type
Gets/sets the element type
Gets/sets the parameter number
Gets/sets the size of the array
Gets/sets the flags
true if is valid
true if is valid
true if is valid
true if is valid
true if ntaSizeParamIndexSpecified bit is set, false if it's not
set or if is invalid.
true if ntaSizeParamIndexSpecified bit is not set, false if it's
set or if is invalid.
Default constructor
Constructor
Element type
Constructor
Element type
Parameter number
Constructor
Element type
Parameter number
Number of elements
Constructor
Element type
Parameter number
Number of elements
Flags
A marshal type
Gets/sets the GUID string
Gets/sets the native type name string
Gets/sets the custom marshaler
Gets/sets the cookie string
Default constructor
Constructor
GUID string
Constructor
GUID string
Native type name string
Constructor
GUID string
Native type name string
Custom marshaler name string
Constructor
GUID string
Native type name string
Custom marshaler name string
Cookie string
A , or a
marshal type
Gets/sets the IID parameter index
true if is valid
Constructor
Native type
Constructor
Native type
IID parameter index
Metadata token
Mask to get the rid from a raw metadata token
Max rid value
Number of bits to right shift a raw metadata token to get the table index
Returns the table type
Returns the row id
Returns the raw token
Returns true if it's a null token
Constructor
Raw token
Constructor
Raw token
Constructor
The table type
Row id
Constructor
The table type
Row id
Returns the rid (row ID)
A raw metadata token
A rid
Returns the rid (row ID)
A raw metadata token
A rid
Returns the table
A raw metadata token
A metadata table index
Returns the table
A raw metadata token
A metadata table index
Gets the token as a raw 32-bit signed integer
Gets the token as a raw 32-bit unsigned integer
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Represents the #Blob stream
Reads data
Offset of data
The data or null if invalid offset
Reads data just like , but returns an empty array if
offset is invalid
Offset of data
The data
Creates a reader that can access a blob
Offset of blob
A new stream
Creates a reader that can access a blob or returns false on failure
Offset of blob
Updated with the reader
Contains all possible coded token classes
TypeDefOrRef coded token
HasConstant coded token
HasCustomAttribute coded token
HasFieldMarshal coded token
HasDeclSecurity coded token
MemberRefParent coded token
HasSemantic coded token
MethodDefOrRef coded token
MemberForwarded coded token
Implementation coded token
CustomAttributeType coded token
ResolutionScope coded token
TypeOrMethodDef coded token
HasCustomDebugInformation coded token
Returns all types of tables
Returns the number of bits that is used to encode table type
Constructor
Number of bits used to encode token type
All table types
Encodes a token
The token
Coded token
Encodes a token
The token
Coded token
Encodes a token
The token
Coded token
true if successful
Encodes a token
The token
Coded token
true if successful
Decodes a coded token
The coded token
Decoded token or 0 on failure
Decodes a coded token
The coded token
Decoded token or 0 on failure
Decodes a coded token
The coded token
Decoded token
true if successful
Decodes a coded token
The coded token
Decoded token
true if successful
Info about one column in a MD table
Gets the column index
Returns the column offset within the table row
Returns the column size
Returns the column name
Returns the ColumnSize enum value
Constructor
Column index
The column name
Column size
Constructor
Column index
The column name
Column size
Offset of column
Size of column
Reads the column
A reader positioned on this column
The column value
Writes a column
The writer position on this column
The column value
MD table column size
RID into Module table
RID into TypeRef table
RID into TypeDef table
RID into FieldPtr table
RID into Field table
RID into MethodPtr table
RID into Method table
RID into ParamPtr table
RID into Param table
RID into InterfaceImpl table
RID into MemberRef table
RID into Constant table
RID into CustomAttribute table
RID into FieldMarshal table
RID into DeclSecurity table
RID into ClassLayout table
RID into FieldLayout table
RID into StandAloneSig table
RID into EventMap table
RID into EventPtr table
RID into Event table
RID into PropertyMap table
RID into PropertyPtr table
RID into Property table
RID into MethodSemantics table
RID into MethodImpl table
RID into ModuleRef table
RID into TypeSpec table
RID into ImplMap table
RID into FieldRVA table
RID into ENCLog table
RID into ENCMap table
RID into Assembly table
RID into AssemblyProcessor table
RID into AssemblyOS table
RID into AssemblyRef table
RID into AssemblyRefProcessor table
RID into AssemblyRefOS table
RID into File table
RID into ExportedType table
RID into ManifestResource table
RID into NestedClass table
RID into GenericParam table
RID into MethodSpec table
RID into GenericParamConstraint table
RID into Document table
RID into MethodDebugInformation table
RID into LocalScope table
RID into LocalVariable table
RID into LocalConstant table
RID into ImportScope table
RID into StateMachineMethod table
RID into CustomDebugInformation table
8-bit byte
16-bit signed int
16-bit unsigned int
32-bit signed int
32-bit unsigned int
Index into #Strings stream
Index into #GUID stream
Index into #Blob stream
TypeDefOrRef encoded token
HasConstant encoded token
HasCustomAttribute encoded token
HasFieldMarshal encoded token
HasDeclSecurity encoded token
MemberRefParent encoded token
HasSemantic encoded token
MethodDefOrRef encoded token
MemberForwarded encoded token
Implementation encoded token
CustomAttributeType encoded token
ResolutionScope encoded token
TypeOrMethodDef encoded token
HasCustomDebugInformation encoded token
See COMIMAGE_FLAGS_XXX in CorHdr.h in the Windows SDK
See COMIMAGE_FLAGS_ILONLY in the Windows SDK
See COMIMAGE_FLAGS_32BITREQUIRED in the Windows SDK
Set if a native header exists (COMIMAGE_FLAGS_IL_LIBRARY)
See COMIMAGE_FLAGS_STRONGNAMESIGNED in the Windows SDK
See COMIMAGE_FLAGS_NATIVE_ENTRYPOINT in the Windows SDK
See COMIMAGE_FLAGS_TRACKDEBUGDATA in the Windows SDK
See COMIMAGE_FLAGS_32BITPREFERRED in the Windows SDK
Used when a #~ stream is present in the metadata
Gets a rid list (eg. field list)
Source table, eg. TypeDef
Row ID in
Column index in , eg. 4 for TypeDef.FieldList
Destination table, eg. Field
A new instance
A custom .NET metadata stream
Constructor
Constructor
Data reader factory
Offset of metadata
The stream header
.NET metadata stream
Reader that can access the whole stream.
NOTE: Always copy this field to a local variable before using it since it must be thread safe.
null if it wasn't present in the file
Gets the length of this stream in the metadata
Gets the stream header
Gets the name of the stream
Gets a data reader that can read the full stream
Default constructor
Constructor
Data reader factory
Offset of metadata
The stream header
Called after gets recreated
Dispose method
true if called by
Checks whether an index is valid
The index
true if the index is valid
Check whether an offset is within the stream
Stream offset
true if the offset is valid
Check whether an offset is within the stream
Stream offset
Size of data
true if the offset is valid
Base class of #US, #Strings, #Blob, and #GUID classes
Initializes .NET table row sizes
Initializes the table sizes
true if #Strings size >= 0x10000
true if #GUID size >= 0x10000
true if #Blob size >= 0x10000
Count of rows in each table
Count of rows in each table (debug tables)
Creates the table infos
Major table version
Minor table version
All table infos (not completely initialized)
Creates the table infos
Major table version
Minor table version
Initialized to max present tables (eg. 42 or 45)
All table infos (not completely initialized)
Used when a #- stream is present in the metadata
Converts a logical Field rid to a physical Field rid
A valid rid
Converted rid or any invalid rid value if is invalid
Converts a logical Method rid to a physical Method rid
A valid rid
Converted rid or any invalid rid value if is invalid
Converts a logical Param rid to a physical Param rid
A valid rid
Converted rid or any invalid rid value if is invalid
Converts a logical Event rid to a physical Event rid
A valid rid
Converted rid or any invalid rid value if is invalid
Converts a logical Property rid to a physical Property rid
A valid rid
Converted rid or any invalid rid value if is invalid
Gets a rid list (eg. field list)
Source table, eg. TypeDef
Row ID in
Column index in , eg. 4 for TypeDef.FieldList
Destination table, eg. Field
A new instance
Linear searches the table (O(n)) for a rid whose key column at index
is equal to .
Table to search
Key column index
Key
The rid of the found row, or 0 if none found
Represents the #GUID stream
Read a
Index into this stream
A or null if is 0 or invalid
Heap type. The values are set in stone by MS. Don't change.
#Strings heap
#GUID heap
#Blob heap
#US heap
Represents the IMAGE_COR20_HEADER structure
Returns true if it has a native header
Returns the IMAGE_COR20_HEADER.cb field
Returns the IMAGE_COR20_HEADER.MajorRuntimeVersion field
Returns the IMAGE_COR20_HEADER.MinorRuntimeVersion field
Returns the IMAGE_COR20_HEADER.Metadata field
Returns the IMAGE_COR20_HEADER.Flags field
Returns the IMAGE_COR20_HEADER.EntryPointToken/EntryPointTokenRVA field
Returns the IMAGE_COR20_HEADER.Resources field
Returns the IMAGE_COR20_HEADER.StrongNameSignature field
Returns the IMAGE_COR20_HEADER.CodeManagerTable field
Returns the IMAGE_COR20_HEADER.VTableFixups field
Returns the IMAGE_COR20_HEADER.ExportAddressTableJumps field
Returns the IMAGE_COR20_HEADER.ManagedNativeHeader field
Constructor
PE file reader pointing to the start of this section
Verify section
Thrown if verification fails
Reads metadata table columns
Reads a column
The table to read from
Table row id
The column to read
Result
true if was updated, false if
the column should be read from the original table.
Reads table rows
Raw row
Reads a table row or returns false if the row should be read from the original table
Row id
The row
Version strings found in the meta data header
MS CLR 1.0 version string (.NET 1.0)
MS CLR 1.0 version string (.NET 1.0). This is an incorrect version that shouldn't be used.
MS CLR 1.0 version string (.NET 1.0). This is an incorrect version that shouldn't be used.
MS CLR 1.0 version string (.NET 1.0). This is an incorrect version that shouldn't be used.
MS CLR 1.1 version string (.NET 1.1)
MS CLR 2.0 version string (.NET 2.0-3.5)
MS CLR 4.0 version string (.NET 4.0-4.5)
MS CLR 1.0 any version
MS CLR 1.0 any version
MS CLR 1.1 any version
MS CLR 2.0 any version
MS CLR 4.0 any version
ECMA 2002 version string
ECMA 2005 version string
Portable PDB v1.0
MDStream flags
#Strings stream is big and requires 4 byte offsets
#GUID stream is big and requires 4 byte offsets
#Blob stream is big and requires 4 byte offsets
Extra data follows the row counts
Set if certain tables can contain deleted rows. The name column (if present) is set to "_Deleted"
A MD table (eg. Method table)
Gets the table
Gets the name of this table
Returns total number of rows
Gets the total size in bytes of one row in this table
Returns all the columns
Returns true if there are no valid rows
Returns info about this table
Constructor
The table
Number of rows in this table
Info about this table
Checks whether the row exists
Row ID
Checks whether the row does not exist
Row ID
Reads .NET metadata
true if the compressed (normal) metadata is used, false if the non-compressed
(Edit N' Continue) metadata is used. This can be false even if the table stream
is #~ but that's very uncommon.
true if this is standalone Portable PDB metadata
Gets the .NET header
Gets the version found in the metadata header. The major version number is in the high 16 bits
and the lower version number is in the low 16 bits.
Gets the version string found in the metadata header
Gets the
Gets the metadata header
Returns the #Strings stream or a default empty one if it's not present
Returns the #US stream or a default empty one if it's not present
Returns the #Blob stream or a default empty one if it's not present
Returns the #GUID stream or a default empty one if it's not present
Returns the #~ or #- tables stream
Returns the #Pdb stream or null if it's not a standalone portable PDB file
Gets all streams
Gets a list of all the valid TypeDef rids. It's usually every rid in the
TypeDef table, but could be less if a type has been deleted.
Gets a list of all the valid ExportedType rids. It's usually every rid in the
ExportedType table, but could be less if a type has been deleted.
Gets the Field rid list
TypeDef rid
A new instance
Gets the Method rid list
TypeDef rid
A new instance
Gets the Param rid list
Method rid
A new instance
Gets the Event rid list
EventMap rid
A new instance
Gets the Property rid list
PropertyMap rid
A new instance
Finds all InterfaceImpl rids owned by
Owner TypeDef rid
A instance containing the valid InterfaceImpl rids
Finds all GenericParam rids owned by in table
A TypeOrMethodDef table
Owner rid
A instance containing the valid GenericParam rids
Finds all GenericParamConstraint rids owned by
Owner GenericParam rid
A instance containing the valid GenericParamConstraint rids
Finds all CustomAttribute rids owned by in table
A HasCustomAttribute table
Owner rid
A instance containing the valid CustomAttribute rids
Finds all DeclSecurity rids owned by in table
A HasDeclSecurity table
Owner rid
A instance containing the valid DeclSecurity rids
Finds all MethodSemantics rids owned by in table
A HasSemantic table
Owner rid
A instance containing the valid MethodSemantics rids
Finds all MethodImpl rids owned by
Owner TypeDef rid
A instance containing the valid MethodImpl rids
Finds a ClassLayout rid
Owner TypeDef rid
The ClassLayout rid or 0 if is invalid
or if it has no row in the ClassLayout table.
Finds a FieldLayout rid
Owner Field rid
The FieldLayout rid or 0 if is invalid
or if it has no row in the FieldLayout table.
Finds a FieldMarshal rid
A HasFieldMarshal table
Owner rid
The FieldMarshal rid or 0 if is invalid
or if it has no row in the FieldMarshal table.
Finds a FieldRVA rid
Owner Field rid
The FieldRVA rid or 0 if is invalid
or if it has no row in the FieldRVA table.
Finds an ImplMap rid
A MemberForwarded table
Owner rid
The ImplMap rid or 0 if is invalid
or if it has no row in the ImplMap table.
Finds a NestedClass rid
Owner TypeDef rid
The NestedClass rid or 0 if is invalid
or if it has no row in the NestedClass table.
Finds an EventMap rid
Owner TypeDef rid
The EventMap rid or 0 if is invalid
or if it has no row in the EventMap table.
Finds a PropertyMap rid
Owner TypeDef rid
The PropertyMap rid or 0 if is invalid
or if it has no row in the PropertyMap table.
Finds a Constant rid
A HasConstant table
Owner rid
The Constant rid or 0 if is invalid
or if it has no row in the Constant table.
Returns the owner TypeDef rid
A Field rid
The owner TypeDef rid or 0 if is invalid
or if it has no owner.
Returns the owner TypeDef rid
A Method rid
The owner TypeDef rid or 0 if is invalid
or if it has no owner.
Returns the owner TypeDef rid
A Event rid
The owner TypeDef rid or 0 if is invalid
or if it has no owner.
Returns the owner TypeDef rid
A Property rid
The owner TypeDef rid or 0 if is invalid
or if it has no owner.
Returns the owner TypeOrMethodDef rid
A GenericParam rid
The owner TypeOrMethodDef rid or 0 if is
invalid or if it has no owner.
Returns the owner GenericParam rid
A GenericParamConstraint rid
The owner GenericParam rid or 0 if is
invalid or if it has no owner.
Returns the owner Method rid
A Param rid
The owner Method rid or 0 if is invalid
or if it has no owner.
Gets a list of all nested classes owned by
A TypeDef rid
A new instance
Gets a list of all non-nested classes. A type is a non-nested type if
returns an empty list.
A new instance
Finds all LocalScope rids owned by
Owner Method rid
A instance containing the valid LocalScope rids
Gets the StateMachineMethod rid or 0 if it's not a state machine method
Owner Method rid
Finds all CustomDebugInformation rids owned by in table
A HasCustomDebugInformation table
Owner rid
A instance containing the valid CustomDebugInformation rids
Disposes of this instance
Common base class for #~ and #- metadata classes
The PE image
The .NET header
The MD header
The #Strings stream
The #US stream
The #Blob stream
The #GUID stream
The #~ or #- stream
The #Pdb stream
All the streams that are present in the PE image
true if this is standalone Portable PDB metadata
Sorts a table by key column
Remembers rid and key
Constructor
Row ID
Key
Constructor
The MD table
Index of key column
Binary searches for a row with a certain key
The key
The row or 0 if not found
Find all rids that contain
The key
A new instance
Constructor
The PE image
The .NET header
The MD header
Initializes the metadata, tables, streams
Creates empty heap objects if they're not present in the metadata
Called by
Binary searches the table for a rid whose key column at index
is equal to .
Table to search
Key column index
Key
The rid of the found row, or 0 if none found
Finds all rows owned by in table
whose index is
Table to search
Key column index
Key
A instance
Finds all rows owned by in table
whose index is . Should be called if
could be unsorted.
Table to search
Key column index
Key
A instance
Dispose method
true if called by
Low level access to a .NET file's metadata
Create a instance
The PE image
A new instance
Create a instance
The PE image
Runtime reader kind
A new instance
Create a instance
The PE image
true if we should verify that it's a .NET PE file
A new instance
Create a instance
The PE image
Runtime reader kind
true if we should verify that it's a .NET PE file
A new instance
Create a instance
The PE image
Runtime reader kind
true if we should verify that it's a .NET PE file
A new instance
Create a standalone portable PDB instance
Metadata stream
true if we should verify that it's a .NET PE file
A new instance
Represents the .NET metadata header
IMAGE_COR20_HEADER.Metadata points to this header
Returns the signature (should be 0x424A5342)
Returns the major version
Returns the minor version
Returns the reserved dword (pointer to extra header data)
Returns the version string length value
Returns the version string
Returns the offset of STORAGEHEADER
Returns the flags (reserved)
Returns the reserved byte (padding)
Returns the number of streams
Returns all stream headers
Constructor
PE file reader pointing to the start of this section
Verify section
Thrown if verification fails
Constructor
PE file reader pointing to the start of this section
Runtime reader kind
Verify section
Thrown if verification fails
#Pdb stream
Gets the PDB id
Gets the entry point token or 0
Gets the referenced type system tables in the PE metadata file
Gets all type system table rows. This array has exactly 64 elements.
Equality comparer for all raw rows
Default instance
Raw contents of an uncompressed Module table row
Gets a column
Index of column
Raw contents of an uncompressed TypeRef table row
Gets a column
Index of column
Raw contents of an uncompressed TypeDef table row
Gets a column
Index of column
Raw contents of an uncompressed FieldPtr table row
Gets a column
Index of column
Raw contents of an uncompressed Field table row
Gets a column
Index of column
Raw contents of an uncompressed MethodPtr table row
Gets a column
Index of column
Raw contents of an uncompressed Method table row
Gets a column
Index of column
Raw contents of an uncompressed ParamPtr table row
Gets a column
Index of column
Raw contents of an uncompressed Param table row
Gets a column
Index of column
Raw contents of an uncompressed InterfaceImpl table row
Gets a column
Index of column
Raw contents of an uncompressed MemberRef table row
Gets a column
Index of column
Raw contents of an uncompressed Constant table row
Gets a column
Index of column
Raw contents of an uncompressed CustomAttribute table row
Gets a column
Index of column
Raw contents of an uncompressed FieldMarshal table row
Gets a column
Index of column
Raw contents of an uncompressed DeclSecurity table row
Gets a column
Index of column
Raw contents of an uncompressed ClassLayout table row
Gets a column
Index of column
Raw contents of an uncompressed FieldLayout table row
Gets a column
Index of column
Raw contents of an uncompressed StandAloneSig table row
Gets a column
Index of column
Raw contents of an uncompressed EventMap table row
Gets a column
Index of column
Raw contents of an uncompressed EventPtr table row
Gets a column
Index of column
Raw contents of an uncompressed Event table row
Gets a column
Index of column
Raw contents of an uncompressed PropertyMap table row
Gets a column
Index of column
Raw contents of an uncompressed PropertyPtr table row
Gets a column
Index of column
Raw contents of an uncompressed Property table row
Gets a column
Index of column
Raw contents of an uncompressed MethodSemantics table row
Gets a column
Index of column
Raw contents of an uncompressed MethodImpl table row
Gets a column
Index of column
Raw contents of an uncompressed ModuleRef table row
Gets a column
Index of column
Raw contents of an uncompressed TypeSpec table row
Gets a column
Index of column
Raw contents of an uncompressed ImplMap table row
Gets a column
Index of column
Raw contents of an uncompressed FieldRVA table row
Gets a column
Index of column
Raw contents of an uncompressed ENCLog table row
Gets a column
Index of column
Raw contents of an uncompressed ENCMap table row
Gets a column
Index of column
Raw contents of an uncompressed Assembly table row
Gets a column
Index of column
Raw contents of an uncompressed AssemblyProcessor table row
Gets a column
Index of column
Raw contents of an uncompressed AssemblyOS table row
Gets a column
Index of column
Raw contents of an uncompressed AssemblyRef table row
Gets a column
Index of column
Raw contents of an uncompressed AssemblyRefProcessor table row
Gets a column
Index of column
Raw contents of an uncompressed AssemblyRefOS table row
Gets a column
Index of column
Raw contents of an uncompressed File table row
Gets a column
Index of column
Raw contents of an uncompressed ExportedType table row
Gets a column
Index of column
Raw contents of an uncompressed ManifestResource table row
Gets a column
Index of column
Raw contents of an uncompressed NestedClass table row
Gets a column
Index of column
Raw contents of an uncompressed GenericParam table row
Gets a column
Index of column
Raw contents of an uncompressed MethodSpec table row
Gets a column
Index of column
Raw contents of an uncompressed GenericParamConstraint table row
Gets a column
Index of column
Raw contents of an uncompressed Document table row
Gets a column
Index of column
Raw contents of an uncompressed MethodDebugInformation table row
Gets a column
Index of column
Raw contents of an uncompressed LocalScope table row
Gets a column
Index of column
Raw contents of an uncompressed LocalVariable table row
Gets a column
Index of column
Raw contents of an uncompressed LocalConstant table row
Gets a column
Index of column
Raw contents of an uncompressed ImportScope table row
Gets a column
Index of column
Raw contents of an uncompressed StateMachineMethod table row
Gets a column
Index of column
Raw contents of an uncompressed CustomDebugInformation table row
Gets a column
Index of column
Stores a list of rids
Gets the empty instance
Creates a new instance
Creates a new instance
List of valid rids
Gets the 'th rid
Index. Must be <
A rid or 0 if is invalid
Gets the number of rids it will iterate over
Enumerator
Gets the current rid
Disposes this instance
Moves to the next rid
Gets the enumerator
Storage flags found in the MD header
Normal flags
More data after the header but before the streams.
The CLR will fail to load the file if this flag (or any other bits) is set.
A metadata stream header
The offset of the stream relative to the start of the metadata header
The size of the stream
The name of the stream
Constructor
PE file reader pointing to the start of this section
Verify section
Thrown if verification fails
Represents the #Strings stream
Reads a
Offset of string
A instance or null if invalid offset
Reads a . The empty string is returned if
is invalid.
Offset of string
A instance
The metadata tables
Module table (00h)
TypeRef table (01h)
TypeDef table (02h)
FieldPtr table (03h)
Field table (04h)
MethodPtr table (05h)
Method table (06h)
ParamPtr table (07h)
Param table (08h)
InterfaceImpl table (09h)
MemberRef table (0Ah)
Constant table (0Bh)
CustomAttribute table (0Ch)
FieldMarshal table (0Dh)
DeclSecurity table (0Eh)
ClassLayout table (0Fh)
FieldLayout table (10h)
StandAloneSig table (11h)
EventMap table (12h)
EventPtr table (13h)
Event table (14h)
PropertyMap table (15h)
PropertyPtr table (16h)
Property table (17h)
MethodSemantics table (18h)
MethodImpl table (19h)
ModuleRef table (1Ah)
TypeSpec table (1Bh)
ImplMap table (1Ch)
FieldRVA table (1Dh)
ENCLog table (1Eh)
ENCMap table (1Fh)
Assembly table (20h)
AssemblyProcessor table (21h)
AssemblyOS table (22h)
AssemblyRef table (23h)
AssemblyRefProcessor table (24h)
AssemblyRefOS table (25h)
File table (26h)
ExportedType table (27h)
ManifestResource table (28h)
NestedClass table (29h)
GenericParam table (2Ah)
MethodSpec table (2Bh)
GenericParamConstraint table (2Ch)
(Portable PDB) Document table (30h)
(Portable PDB) MethodDebugInformation table (31h)
(Portable PDB) LocalScope table (32h)
(Portable PDB) LocalVariable table (33h)
(Portable PDB) LocalConstant table (34h)
(Portable PDB) ImportScope table (35h)
(Portable PDB) StateMachineMethod table (36h)
(Portable PDB) CustomDebugInformation table (37h)
Info about one MD table
Returns the table type
Returns the total size of a row in bytes
Returns all the columns
Returns the name of the table
Constructor
Table type
Table name
All columns
Constructor
Table type
Table name
All columns
Row size
.NET metadata tables stream
Gets/sets the column reader
Gets/sets the Method table reader
Gets the reserved field
Gets the version. The major version is in the upper 8 bits, and the minor version
is in the lower 8 bits.
Gets
Gets the reserved log2 rid field
Gets the valid mask
Gets the sorted mask
Gets the extra data
Gets the MD tables
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Constructor
factory
Offset of metadata
Stream header
Constructor
factory
Offset of metadata
Stream header
Runtime kind
Initializes MD tables
Type system table rows (from #Pdb stream)
Returns a MD table
The table type
A or null if table doesn't exist
Checks whether a table exists
The table type
true if the table exists
Checks whether table is sorted
The table
Reads a raw Module row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw TypeRef row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw TypeDef row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw FieldPtr row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw Field row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw MethodPtr row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw Method row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw ParamPtr row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw Param row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw InterfaceImpl row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw MemberRef row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw Constant row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw CustomAttribute row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw FieldMarshal row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw DeclSecurity row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw ClassLayout row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw FieldLayout row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw StandAloneSig row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw EventMap row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw EventPtr row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw Event row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw PropertyMap row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw PropertyPtr row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw Property row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw MethodSemantics row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw MethodImpl row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw ModuleRef row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw TypeSpec row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw ImplMap row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw FieldRVA row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw ENCLog row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw ENCMap row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw Assembly row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw AssemblyProcessor row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw AssemblyOS row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw AssemblyRef row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw AssemblyRefProcessor row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw AssemblyRefOS row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw File row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw ExportedType row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw ManifestResource row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw NestedClass row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw GenericParam row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw MethodSpec row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw GenericParamConstraint row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw Document row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw MethodDebugInformation row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw LocalScope row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw LocalVariable row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw LocalConstant row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw ImportScope row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw StateMachineMethod row or returns false if the row doesn't exist
Row ID
Row data
Reads a raw CustomDebugInformation row or returns false if the row doesn't exist
Row ID
Row data
Reads a column
The table
Row ID
Column index in
Result is put here or 0 if we return false
true if we could read the column, false otherwise
Reads a column
The table
Row ID
Column
Result is put here or 0 if we return false
true if we could read the column, false otherwise
Represents the #US stream
Reads a unicode string
Offset of unicode string
A string or null if is invalid
Reads data just like , but returns an empty string if
offset is invalid
Offset of unicode string
The string
Finds types, fields, methods, etc in a module. If nothing has been added to the module, it's
faster to call ResolveMethodDef(), ResolveTypeRef() etc.
All found s
All found s
All found s
All found s
All found s
All found s
All found s
All found s
All found s
All found s
All found s
All found s
All found s
Finds all types, fields, etc
The module to scan
Itself
Methods to load properties to make sure they're initialized
Read every collection element
Collection element type
Collection
Load the object instance
The value (ignored)
A high-level representation of a row in the MemberRef table
The row id in its table
The owner module
From column MemberRef.Class
From column MemberRef.Name
Name
From column MemberRef.Signature
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
true if this is a method reference ( != null)
true if this is a field reference ( != null)
Gets/sets the method sig
Gets/sets the field sig
true if the method has a hidden 'this' parameter
true if the method has an explicit 'this' parameter
Gets the calling convention
Gets/sets the method return type
Gets the full name
Get the declaring type's full name
Full name or null if there's no declaring type
Resolves the method/field
A or a instance or null
if it couldn't be resolved.
Resolves the method/field
A or a instance
If the method/field couldn't be resolved
Resolves the field
A instance or null if it couldn't be resolved.
Resolves the field
A instance
If the field couldn't be resolved
Resolves the method
A instance or null if it couldn't be resolved.
Resolves the method
A instance
If the method couldn't be resolved
Gets a that can be used as signature context
Context passed to the constructor
Field/method class owner
A MemberRef row created by the user and not present in the original .NET file
Constructor
Owner module
Constructor
Owner module
Name of ref
Constructor
Owner module
Name of field ref
Field sig
Constructor
Owner module
Name of field ref
Field sig
Owner of field
Constructor
Owner module
Name of method ref
Method sig
Constructor
Owner module
Name of method ref
Method sig
Owner of method
Created from a row in the MemberRef table
The module where this instance is located
Constructor
The module which contains this MemberRef row
Row ID
Generic parameter context
If is null
If is invalid
Method attributes, see CorHdr.h/CorMethodAttr
member access mask - Use this mask to retrieve accessibility information.
Member not referenceable.
Member not referenceable.
Accessible only by the parent type.
Accessible by sub-types only in this Assembly.
Accessibly by anyone in the Assembly.
Accessible only by type and sub-types.
Accessibly by sub-types anywhere, plus anyone in assembly.
Accessibly by anyone who has visibility to this scope.
Defined on type, else per instance.
Method may not be overridden.
Method virtual.
Method hides by name+sig, else just by name.
vtable layout mask - Use this mask to retrieve vtable attributes.
The default.
Method always gets a new slot in the vtable.
Overridability is the same as the visibility.
Method does not provide an implementation.
Method is special. Name describes how.
Implementation is forwarded through pinvoke.
Managed method exported via thunk to unmanaged code.
Runtime should check name encoding.
Method has security associate with it.
Method calls another method containing security code.
A high-level representation of a row in the Method table
The row id in its table
All parameters
From column Method.RVA
From column Method.ImplFlags
Implementation attributes
From column Method.Flags
Attributes
From column Method.Name
Name
From column Method.Signature
From column Method.ParamList
Initializes
Initializes
Initializes
Called to initialize
Reset
Gets/sets the method body. See also
Frees the method body if it has been loaded. This does nothing if
returns false.
Called to initialize
true if can free the method body
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
Gets the methods this method implements
Initializes
Gets the export info or null if the method isn't exported to unmanaged code.
true if is not empty
Gets/sets the declaring type (owner type)
Called by and should normally not be called by any user
code. Use instead. Only call this if you must set the
declaring type without inserting it in the declaring type's method list.
Gets/sets the CIL method body. See also
Gets/sets the native method body
true if there's at least one in
true if it has a
true if there's at least one in
true if is not null
Gets the full name
Gets/sets the
Gets the parameters
true if the method has a hidden 'this' parameter
true if the method has an explicit 'this' parameter
Gets the calling convention
Gets/sets the method return type
true if the method returns a value (i.e., return type is not )
Gets/sets the method semantics attributes. If you remove/add a method to a property or
an event, you must manually update this property or eg. won't
work as expected.
Set when has been initialized
Initializes
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Modify property: =
( & ) | .
Value to AND
Value to OR
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Modify property: =
( & ) | .
Value to AND
Value to OR
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the method access
true if is set
true if is set
true if is set
true if is set
true if is set
true if is set
true if is set
true if is set
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the code type
true if is set
true if is set
true if is set
true if is set
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
true if this is the static type constructor
true if this is an instance constructor
true if this is a static or an instance constructor
A Method row created by the user and not present in the original .NET file
Default constructor
Constructor
Method name
Constructor
Method name
Method sig
Constructor
Method name
Method sig
Flags
Constructor
Method name
Method sig
Impl flags
Constructor
Method name
Method sig
Impl flags
Flags
Created from a row in the Method table
The module where this instance is located
Constructor
The module which contains this Method row
Row ID
If is null
If is invalid
Contains the name and ordinal of a method that gets exported to unmanaged code.
Gets the ordinal or null
Gets the name. If it's null, and is also null, the name of the method
() is used as the exported name.
Gets the options
Constructor
Constructor
Name or null to export by ordinal
Constructor
Ordinal
Constructor
Name or null to export by ordinal
Ordinal or null to export by name
Constructor
Name or null to export by ordinal
Ordinal or null to export by name
Options
Exported method options
No bit is set
Transition from unmanaged code
Also retain app domain
Call most derived method
Method impl attributes, see CorHdr.h/CorMethodImpl
Flags about code type.
Method impl is IL.
Method impl is native.
Method impl is OPTIL
Method impl is provided by the runtime.
Flags specifying whether the code is managed or unmanaged.
Method impl is unmanaged, otherwise managed.
Method impl is managed.
Indicates method is defined; used primarily in merge scenarios.
Indicates method sig is not to be mangled to do HRESULT conversion.
Reserved for internal use.
Method is single threaded through the body.
Method may not be inlined.
Method should be inlined if possible.
Method may not be optimized.
Method may contain hot code and should be aggressively optimized.
The JIT compiler should look for security mitigation attributes, such as the user-defined System.Runtime.CompilerServices.SecurityMitigationsAttribute. If found, the JIT compiler applies any related security mitigations. Available starting with .NET Framework 4.8.
Describes which method some method implements
The method body. Usually a but could be a
The method implements
Constructor
Method body
The method implements
Method semantics flags, see CorHdr.h/CorMethodSemanticsAttr
No bit is set
Setter for property
Getter for property
other method for property or event
AddOn method for event
RemoveOn method for event
Fire method for event
A high-level representation of a row in the MethodSpec table
The row id in its table
From column MethodSpec.Method
From column MethodSpec.Instantiation
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
Gets/sets the generic instance method sig
Gets the full name
A MethodSpec row created by the user and not present in the original .NET file
Default constructor
Constructor
The generic method
Constructor
The generic method
The instantiated method sig
Created from a row in the MethodSpec table
The module where this instance is located
Constructor
The module which contains this MethodSpec row
Row ID
Generic parameter context
If is null
If is invalid
context
Gets/sets the assembly resolver. This is never null.
Gets/sets the resolver. This is never null.
Default constructor
Constructor
Assembly resolver or null
Constructor
Type/method/field resolver or null
Constructor
Assembly resolver or null
Type/method/field resolver or null
creation options
Module context
PDB reader options
Set it to A) the path (string) of the PDB file, B) the data (byte[]) of the PDB file or
C) to an of the PDB data. The will
be owned by the module. You don't need to initialize
If true, will load the PDB file from disk if present, or an embedded portable PDB file
stored in the PE file. The default value is true.
You don't need to initialize .
corlib assembly reference to use or null if the default one from the opened
module should be used.
Runtime reader kind, default is . It should be
set to if it's an obfuscated Mono/Unity assembly.
Default constructor
Constructor
Module context
Constructor
Runtime reader kind, default is . It should be
set to if it's an obfuscated Mono/Unity assembly.
Constructor
Module context
Runtime reader kind, default is . It should be
set to if it's an obfuscated Mono/Unity assembly.
Runtime reader kind
Microsoft's CLRs (.NET Framework, .NET Core)
Mono's CLR (Mono, Unity)
A high-level representation of a row in the Module table
Default characteristics
Default DLL characteristics
The row id in its table
Initialize this in the ctor
PDB state
Array of last used rid in each table. I.e., next free rid is value + 1
Module context
Gets/sets a user value. This is never used by dnlib. This property isn't thread safe.
Gets/sets Module.Generation column
Gets/sets Module.Name column
Name
Gets/sets Module.Mvid column
Gets/sets Module.EncId column
Gets/sets Module.EncBaseId column
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
Gets the module's assembly. To set this value, add this
to .
Gets a list of all non-nested s. See also
Initializes
Gets a list of all s
Initializes
Gets/sets the native entry point. Only one of and
can be set. You write to one and the other one gets cleared.
Gets/sets the managed entry point. Only one of and
can be set. You write to one and the other one gets cleared.
Called to initialize
Called to initialize
Gets/sets the entry point method
true if is non-zero
true if is non-null
true if is non-null
Gets a list of all s
Initializes
Gets/sets the . This is null if there are no
vtable fixups.
Called to initialize
true if there's at least one in
true if there's at least one in
true if there's at least one in
Gets/sets the path of the module or an empty string if it wasn't loaded from disk
Gets the
Gets the instance
Gets/sets the module context. This is never null.
If true, the cache is enabled. The cache is used by
and to find types.
IMPORTANT: Only enable the cache if this module's types keep their exact
name, namespace, and declaring type and if no type is either added or
removed from or from any type that is reachable from the
top-level types in (i.e., any type owned by this module).
This is disabled by default. When disabled, all calls to
and will result in a slow O(n) (linear) search.
true if this is the manifest (main) module
Gets the global (aka. <Module>) type or null if there are no types
true if it's the core library module, false if it's not the core library module,
and null if it's not known.
Gets/sets the Win32 resources
Called to initialize
Gets the . This is null if no PDB file
has been loaded or if no PDB file could be found.
Module kind
Gets/sets the characteristics (from PE file header)
Gets/sets the DLL characteristics (from PE optional header)
Gets/sets the runtime version which is stored in the metadata header.
See .
Not thread safe
Gets the WinMD status
Not thread safe
true if this is a WinMD file
true if this is a managed WinMD file
true if this is a pure (non-managed) WinMD file
Gets the CLR runtime version of the managed WinMD file or null if none. This is
similar to for normal non-WinMD files.
Not thread safe
Gets the WinMD version or null if none
Not thread safe
true if is the CLR v1.0 string (only the major
and minor version numbers are checked)
true if is the CLR v1.0 string
true if is the CLR v1.1 string (only the major
and minor version numbers are checked)
true if is the CLR v1.1 string
true if is the CLR v1.0 or v1.1 string (only the
major and minor version numbers are checked)
true if is the CLR v1.0 or v1.1 string
true if is the CLR v2.0 string (only the major
and minor version numbers are checked)
true if is the CLR v2.0 string
true if is the CLR v4.0 string (only the major
and minor version numbers are checked)
true if is the CLR v4.0 string
true if is the ECMA 2002 string
true if is the ECMA 2005 string
Gets/sets the (from PE header)
true if is , , ...
true if is
true if is , , ...
true if is , , ...
true if is , , ...
Gets/sets the (from .NET header)
Gets/sets the runtime version number in the COR20 header. The major version is
in the high 16 bits. The minor version is in the low 16 bits. This is normally 2.5
(0x00020005), but if it's .NET 1.x, it should be 2.0 (0x00020000). If this is
null, the default value will be used when saving the module (2.0 if CLR 1.x,
and 2.5 if not CLR 1.x).
Gets the tables header version. The major version is in the upper 8 bits and the
minor version is in the lower 8 bits. .NET 1.0/1.1 use version 1.0 (0x0100) and
.NET 2.x and later use version 2.0 (0x0200). 1.0 has no support for generics,
1.1 has support for generics (GenericParam rows have an extra Kind column),
and 2.0 has support for generics (GenericParam rows have the standard 4 columns).
No other version is supported. If this is null, the default version is
used (1.0 if .NET 1.x, else 2.0).
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Dispose method
true if called by
Gets all the types (including nested types) present in this module
Adds as a non-nested type. If it's already nested, its
will be set to null.
The to insert
Updates the rid to the next free rid available. It's only updated if
the original rid is 0.
IMDTokenProvider
The row that should be updated
Returns the input
Updates the rid to the next free rid available.
IMDTokenProvider
The row that should be updated
Returns the input
Imports a as a
The type
The imported type or null if is invalid
Imports a as a
The type
The imported type or null if is invalid
Imports a as a
The field
The imported field or null if is invalid
or if we failed to import the field
Imports a as a . This will be either
a or a .
The method
The imported method or null if is invalid
or if we failed to import the method
Imports a
The type
The imported type or null
Imports a as a
The type
The imported type or null
Imports a
The type
The imported type or null
Imports a
The type
The imported type or null
Imports a
The type
The imported type or null
Imports a
The field
The imported type or null if is invalid
Imports a as a
The field
The imported type or null if is invalid
Imports a
The method
The imported method or null if is invalid
Imports a as a
The method
The imported method or null if is invalid
Imports a
The method
The imported method or null if is invalid
Imports a
The member ref
The imported member ref or null if is invalid
Writes the module to a file on disk. If the file exists, it will be overwritten.
Filename
Writes the module to a file on disk. If the file exists, it will be overwritten.
Filename
Writer options
Writes the module to a stream.
Destination stream
Writes the module to a stream.
Destination stream
Writer options
Resets the cache which can be enabled by setting
to true. Use this method if the cache is
enabled but some of the types have been modified (eg. removed, added, renamed).
Finds a
Type
Name
Language ID
The or null if none found
Creates a new
PDB file kind
Sets a
New
Returns the size of a pointer. Assumes it's 32-bit if pointer size is unknown or
if it can be 32-bit or 64-bit.
Size of a pointer (4 or 8)
Returns the size of a pointer
Default pointer size if it's not known or if it
can be 32-bit or 64-bit
Size of a pointer (4 or 8)
Returns the size of a pointer
Default pointer size
Pointer size if it's prefer-32-bit (should usually be 4)
Finds a . For speed, enable
if possible (read the documentation first).
Full name of the type (no assembly information)
true if it's a reflection name, and nested
type names are separated by a + character. If false, nested type names
are separated by a / character.
An existing or null if it wasn't found.
Finds a . Its scope (i.e., module or assembly) is ignored when
looking up the type. For speed, enable if possible
(read the documentation first).
The type ref
An existing or null if it wasn't found.
Finds a
The type
A or null if it wasn't found
Creates a new instance. There should normally only be one
instance shared by all s.
A new instance
Load everything in this module. All types, fields, asm refs, etc are loaded, all their
properties are read to make sure everything is cached.
Cancellation token or null
Resolves a token
The metadata token
A or null if is invalid
Resolves a token
The metadata token
Generic parameter context
A or null if is invalid
Resolves a token
The metadata token
A or null if is invalid
Resolves a token
The metadata token
Generic parameter context
A or null if is invalid
Resolves a token
The metadata token
A or null if is invalid
Resolves a token
The metadata token
Generic parameter context
A or null if is invalid
Gets all s
Gets all s
Gets all s. s with generic parameters
aren't cached and a new copy is always returned.
Gets all s. s with generic parameters
aren't cached and a new copy is always returned.
Generic parameter context
Gets all s
Finds an assembly reference by name. If there's more than one, pick the one with
the greatest version number.
Simple name of assembly (eg. "mscorlib")
The found or null if there's no such
assembly reference.
Compare asm refs' version
First asm ref
New asm ref
A Module row created by the user and not present in the original .NET file
Default constructor
Constructor
is initialized to a random
Module nam
Constructor
Module name
Module version ID
Constructor
Module name
Module version ID
Corlib assembly ref or null
Created from a row in the Module table
The module where this instance is located
Constructor
The module which contains this Module row
Row ID
If is null
If is invalid
Initialize fields from the raw Module row
Created from a row in the Module table
The file that contains all .NET metadata
Gets/sets the method decrypter
Gets/sets the string decrypter
Returns the .NET metadata interface
Returns the #~ or #- tables stream
Returns the #Strings stream
Returns the #Blob stream
Returns the #GUID stream
Returns the #US stream
Creates a instance from a file
File name of an existing .NET module/assembly
Module context or null
A new instance
Creates a instance from a file
File name of an existing .NET module/assembly
Module creation options or null
A new instance
Creates a instance from a byte[]
Contents of a .NET module/assembly
Module context or null
A new instance
Creates a instance from a byte[]
Contents of a .NET module/assembly
Module creation options or null
A new instance
Creates a instance from a reflection module
An existing reflection module
A new instance
Creates a instance from a reflection module
An existing reflection module
Module context or null
A new instance
Creates a instance from a reflection module
An existing reflection module
Module creation options or null
A new instance
Creates a instance from a reflection module
An existing reflection module
Module context or null
Image layout of the module in memory
A new instance
Creates a instance from a reflection module
An existing reflection module
Module creation options or null
Image layout of the module in memory
A new instance
Creates a instance from a memory location
Address of a .NET module/assembly
A new instance
Creates a instance from a memory location
Address of a .NET module/assembly
Module context or null
A new instance
Creates a instance from a memory location
Address of a .NET module/assembly
Module creation options or null
A new instance
Creates a instance
PE image
A new instance
Creates a instance
PE image
Module context or null
A new instance
Creates a instance
PE image
Module creation options or null
A new instance
Creates a instance from a memory location
Address of a .NET module/assembly
Module context or null
Image layout of the file in memory
A new instance
Creates a instance from a memory location
Address of a .NET module/assembly
Module creation options or null
Image layout of the file in memory
A new instance
Creates a instance from a stream
This will read all bytes from the stream and call .
It's better to use one of the other Load() methods.
The stream (owned by caller)
A new instance
If is null
Creates a instance from a stream
This will read all bytes from the stream and call .
It's better to use one of the other Load() methods.
The stream (owned by caller)
Module context or null
A new instance
If is null
Creates a instance from a stream
This will read all bytes from the stream and call .
It's better to use one of the other Load() methods.
The stream (owned by caller)
Module creation options or null
A new instance
If is null
Creates a instance from a
The metadata
Module creation options or null
A new instance that now owns
Constructor
The metadata
Module creation options or null
If is null
Loads symbols using
PDB symbol reader
Loads symbols from a PDB file
PDB file name
Loads symbols from a PDB file
PDB reader options
PDB file name
Loads symbols from a byte array
PDB data
Loads symbols from a byte array
PDB reader options
PDB data
Loads symbols from a stream
PDB file stream which is now owned by us
Loads symbols from a stream
PDB reader options
PDB file stream which is now owned by us
Loads symbols if a PDB file is available
Loads symbols if a PDB file is available
PDB reader options
Finds a mscorlib
An existing instance or null if it wasn't found
Called when no corlib assembly reference was found
Resolves a token
The metadata token
Generic parameter context
A or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves an
The row ID
A instance or null if is invalid
Resolves an
The row ID
Generic parameter context
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
Generic parameter context
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
Generic parameter context
A instance or null if is invalid
Resolves an
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
Generic parameter context
A instance or null if is invalid
Resolves an
The row ID
A instance or null if is invalid
Resolves an
The row ID
A instance or null if is invalid
Resolves an
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves an
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
Generic parameter context
A instance or null if is invalid
Resolves a
The row ID
A instance or null if is invalid
Resolves a
The row ID
Generic parameter context
A instance or null if is invalid
Resolves a
A TypeDefOrRef coded token
A or null if is invalid
Resolves a
A TypeDefOrRef coded token
Generic parameter context
A or null if is invalid
Resolves a
A HasConstant coded token
A or null if is invalid
Resolves a
A HasCustomAttribute coded token
A or null if is invalid
Resolves a
A HasCustomAttribute coded token
Generic parameter context
A or null if is invalid
Resolves a
A HasFieldMarshal coded token
A or null if is invalid
Resolves a
A HasDeclSecurity coded token
A or null if is invalid
Resolves a
A MemberRefParent coded token
A or null if is invalid
Resolves a
A MemberRefParent coded token
Generic parameter context
A or null if is invalid
Resolves a
A HasSemantic coded token
A or null if is invalid
Resolves a
A MethodDefOrRef coded token
A or null if is invalid
Resolves a
A MethodDefOrRef coded token
Generic parameter context
A or null if is invalid
Resolves a
A MemberForwarded coded token
A or null if is invalid
Resolves an
An Implementation coded token
A or null if is invalid
Resolves a
A CustomAttributeType coded token
A or null if is invalid
Resolves a
A CustomAttributeType coded token
Generic parameter context
A or null if is invalid
Resolves a
A ResolutionScope coded token
A or null if is invalid
Resolves a
A TypeOrMethodDef> coded token
A or null if is invalid
Reads a signature from the #Blob stream
#Blob stream offset of signature
A new instance or null if
is invalid.
Reads a signature from the #Blob stream
#Blob stream offset of signature
Generic parameter context
A new instance or null if
is invalid.
Reads a type signature from the #Blob stream
#Blob stream offset of signature
A new instance or null if
is invalid.
Reads a type signature from the #Blob stream
#Blob stream offset of signature
Generic parameter context
A new instance or null if
is invalid.
Reads a type signature from the #Blob stream
#Blob stream offset of signature
If there's any extra data after the signature, it's saved
here, else this will be null
A new instance or null if
is invalid.
Reads a type signature from the #Blob stream
#Blob stream offset of signature
If there's any extra data after the signature, it's saved
here, else this will be null
Generic parameter context
A new instance or null if
is invalid.
Reads a from the blob
Table of owner
Row ID of owner
Generic parameter context
A new instance or null if there's no field
marshal for this owner.
Reads a CIL method body
Method parameters
RVA
A new instance. It's empty if RVA is invalid (eg. 0 or
it doesn't point to a CIL method body)
Reads a CIL method body
Method parameters
RVA
Generic parameter context
A new instance. It's empty if RVA is invalid (eg. 0 or
it doesn't point to a CIL method body)
Returns the owner type of a field
The field
The owner type or null if none
Returns the owner type of a method
The method
The owner type or null if none
Returns the owner type of an event
The event
The owner type or null if none
Returns the owner type of a property
The property
The owner type or null if none
Returns the owner type/method of a generic param
The generic param
The owner type/method or null if none
Returns the owner generic param of a generic param constraint
The generic param constraint
The owner generic param or null if none
Returns the owner method of a param
The param
The owner method or null if none
Reads a module
File rid
The assembly owning the module we should read
A new instance or null if
is invalid or if it's not a .NET module.
Gets a list of all File rids that are .NET modules. Call
to read one of these modules.
A new instance
Concatenates the inputs and returns the result if it's a valid path
Base dir
File name
Full path to the file or null if one of the inputs is invalid
Gets the base directory where this .NET module is located on disk
Base directory or null if unknown or if an error occurred
Creates a instance
ManifestResource rid
A new instance
Reads a
Custom attribute rid
A new instance or null if
is invalid
Reads a
Custom attribute rid
Generic parameter context
A new instance or null if
is invalid
Reads data somewhere in the address space of the image
RVA of data
Size of data
All the data or null if or
is invalid
Gets the native entry point or 0 if none
Gets the managed entry point (a Method or a File) or null if none
Reads a new instance. This one is not cached.
Row ID
A new instance
Reads a new instance. This one is not cached.
Row ID
A new instance
Reads a new instance. This one is not cached.
Row ID
A new instance
Reads a new instance. This one is not cached.
Row ID
A new instance
Reads a new instance. This one is not cached.
Row ID
A new instance
Reads a new instance. This one is not cached.
Row ID
A new instance
Reads a new instance. This one is not cached.
Row ID
A new instance
Reads a new instance. This one is not cached.
Row ID
Generic parameter context
A new instance
Reads a method body
Method
Method RVA
Method impl attrs
Generic parameter context
A or null if none
Updates with the PDB info (if any)
Owner method
Method body
Returns originak value
Reads a string from the #US heap
String token
A non-null string
Writes the mixed-mode module to a file on disk. If the file exists, it will be overwritten.
Filename
Writes the mixed-mode module to a file on disk. If the file exists, it will be overwritten.
Filename
Writer options
Writes the mixed-mode module to a stream.
Destination stream
Writes the mixed-mode module to a stream.
Destination stream
Writer options
Reads data from the #Blob. The following columns are returned:
Field.Signature
Method.Signature
MemberRef.Signature
Constant.Value
CustomAttribute.Value
FieldMarshal.NativeType
DeclSecurity.PermissionSet
StandAloneSig.Signature
Property.Type
TypeSpec.Signature
Assembly.PublicKey
AssemblyRef.PublicKeyOrToken
File.HashValue
MethodSpec.Instantiation
A token
The value in the #Blob or null if is invalid
Module kind
Console UI module
Windows GUI module
DLL module
Netmodule (it has no assembly manifest)
A high-level representation of a row in the ModuleRef table
The row id in its table
The owner module
From column ModuleRef.Name
Name
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
Gets the definition module, i.e., the module which it references, or null
if the module can't be found.
Gets the definition assembly, i.e., the assembly of the module it references, or
null if the assembly can't be found.
A ModuleRef row created by the user and not present in the original .NET file
Constructor
Owner module
Constructor
Owner module
Module name
Created from a row in the ModuleRef table
The module where this instance is located
Constructor
The module which contains this ModuleRef row
Row ID
If is null
If is invalid
Native types used by field marshals. See CorHdr.h/CorNativeType
Deprecated
void
bool
int8
unsigned int8
int16
unsigned int16
int32
unsigned int32
int64
unsigned int64
float32
float64
syschar
variant
currency
ptr
decimal
date
bstr
lpstr
lpwstr
lptstr
fixed sysstring
objectref
iunknown
idispatch
struct
interface
safearray
fixed array
int
uint
nested struct
byvalstr
ansi bstr
tbstr
variant bool
func
as any
array
lpstruct
custom marshaler
error
iinspectable
hstring
UTF-8 encoded string
first invalid element type
Value wasn't present in the blob
Raw marshal blob type
A resolver that always fails
The one and only instance of this type
Parameter flags. See CorHdr.h/CorParamAttr
Param is [In]
Param is [out]
Param is a locale identifier
Param is a return value
Param is optional
Param has default value.
Param has FieldMarshal.
A high-level representation of a row in the Param table
The row id in its table
Gets the declaring method
From column Param.Flags
Attributes
From column Param.Sequence
From column Param.Name
Name
Called to initialize
Reset
Called to initialize
Reset
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
true if is not null
Gets the constant element type or if there's no constant
true if is not null
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
A Param row created by the user and not present in the original .NET file
Default constructor
Constructor
Name
Constructor
Name
Sequence
Constructor
Name
Sequence
Flags
Created from a row in the Param table
The module where this instance is located
Constructor
The module which contains this Param row
Row ID
If is null
If is invalid
A list of all method parameters
Gets the owner method
Gets the number of parameters, including a possible hidden 'this' parameter
Gets the index of the first parameter that is present in the method signature.
If this is a static method, the value is 0, else it's an instance method so the
index is 1 since the first parameter is the hidden 'this' parameter.
Gets the N'th parameter
The parameter index
Gets the method return parameter
Constructor
The method with all parameters
's declaring type
Should be called when the method's declaring type has changed
Method declaring type
Should be called when the method sig has changed
Enumerator
Gets the current value
Moves to the next element in the collection
Disposes the enumerator
Gets the list enumerator
A method parameter
The hidden 'this' parameter's
The return type parameter's
Gets the parameter index. If the method has a hidden 'this' parameter, that parameter
has index 0 and the remaining parameters in the method signature start from index 1.
The method return parameter has index -1.
Gets the index of the parameter in the method signature. See also
and
true if it's a normal visible method parameter, i.e., it's not the hidden
'this' parameter and it's not the method return type parameter.
true if it's the hidden 'this' parameter
true if it's the method return type parameter
Gets the parameter type
Gets the owner method
Gets the or null if not present
true if it has a
Gets the name from . If is null,
an empty string is returned.
Constructor
Parameter index
Constructor
Parameter index
Parameter type
Constructor
Parameter index (0 is hidden this param if it exists)
Index in method signature
Constructor
Parameter index (0 is hidden this param if it exists)
Index in method signature
Parameter type
Creates a if it doesn't already exist
Custom debug info guids
Implements and uses a as the underlying
stream.
Constructor
Source stream
Constructor
Source stream
Name of original file or null if unknown.
IMAGE_DEBUG_DIRECTORY
An address in the image
Section
Offset in
Constructor
Section
Offset in
Constructor
Section
Offset in
Returns true if is less than or equal to
First
Second
Returns true if is less than
First
Second
Returns true if is greater than or equal to
First
Second
Returns true if is greater than
First
Second
Returns true if is equal to
First
Second
Returns true if is not equal to
First
Second
Compares this instance with and returns less than 0 if it's
less than , 0 if it's equal to and
greater than 0 if it's greater than
Other instance
Compares this to another instance
The other one
true if they're equal
Compares this to another instance
The other one
true if they're equal
Gets the hash code
Hash code
ToString() override
Reads a 32-bit offset followed by a 16-bit section and creates a new
Reader
Exception that is thrown when encounters an error.
Constructor
Constructor
Exception message
Constructor
Inner exception
Constructor
A managed PDB reader implementation for .NET modules.
Read the PDB in the specified stream.
PDB file data reader
Creates a instance
Creates a new instance
PDB context
PDB file stream which is now owned by this method
A new instance or null.
A constant in a method scope, eg. "const int SomeConstant = 123;"
Gets/sets the name
Gets/sets the type of the constant
Gets/sets the value of the constant
Constructor
Constructor
Name of constant
Type of constant
Constant value
Gets all custom debug infos
ToString()
Custom debug info kind
See CustomDebugInfoKind in Roslyn source code
Unknown
Base class of custom debug info added to the PDB file by the compiler
Gets the custom debug info kind
Gets the custom debug info guid, see
Unknown custom debug info. If you see an instance of this class, you're using an old dnlib version or
dnlib hasn't been updated to support this new custom debug info kind.
Gets the custom debug info kind
Gets the custom debug info guid, see
Gets the data
Constructor
Custom debug info kind
Raw custom debug info data
Constructor
Custom debug info guid
Raw custom debug info data
Contains sizes of using groups
Returns
Gets the custom debug info guid, see
Gets the using counts
Constructor
Constructor
Initial capacity of
Contains a reference to another method that contains the import strings
Returns
Gets the custom debug info guid, see
Gets/sets the referenced method
Constructor
Constructor
The referenced method
Contains a reference to another method that contains the per-module debug info (assembly reference aliases)
Returns
Gets the custom debug info guid, see
Gets/sets the referenced method
Constructor
Constructor
The referenced method
State machine hosted local scope info
true if it's a syntesized local ( and are both null)
The instruction of the first operation in the scope. Can be null if it's a synthesized local
The instruction of the first operation outside of the scope or null if it ends at the last instruction in the body.
Can also be null if it's a synthesized local (in which case is also null, see )
Constructor
Start of the scope
First instruction after the end of the scope
Contains local scopes for state machine hoisted local variables.
Returns
Gets the custom debug info guid, see
Gets the scopes
Constructor
Constructor
Initial capacity of
Contains the state machine type
Returns
Gets the custom debug info guid, see
Gets/sets the state machine type
Constructor
Constructor
State machine type
Contains dynamic flags for local variables and constants
Returns
Gets the custom debug info guid, see
Gets the dynamic locals
Constructor
Constructor
Initial capacity of
Dynamic local info
Gets the dynamic flags
Gets/sets the name of the local. The name must have at most 64 characters and no char can be NUL (0x0000).
If null is written, is returned instead.
true if it's a constant and not a variable ( is null)
true if it's a variable ( is not null)
Gets/sets the local. Could be null if there's no local (it's a 'const' local).
Constructor
Constructor
Initial capacity of
Contains the EnC local variable slot map
Returns
Gets the custom debug info guid, see
Gets the data. Spec: https://github.com/dotnet/corefx/blob/master/src/System.Reflection.Metadata/specs/PortablePdb-Metadata.md#EditAndContinueLocalSlotMap
Constructor
Raw custom debug info data
Contains the EnC lambda map
Returns
Gets the custom debug info guid, see
Gets the data. Spec: https://github.com/dotnet/corefx/blob/master/src/System.Reflection.Metadata/specs/PortablePdb-Metadata.md#EditAndContinueLambdaAndClosureMap
Constructor
Raw custom debug info data
Contains tuple element names for local variables and constants
Returns
Gets the custom debug info guid, see
Gets the tuple element names
Constructor
Constructor
Initial capacity of
Tuple element name info
Gets/sets the name of the local. If null is written, is returned instead.
Gets/sets the local. It's null if it's a constant, and non-null if it's a variable
true if it's a constant. Constants have a scope ( and )
true if it's a variable. Variables don't have a scope ( and )
Gets/sets the start of the scope or null. Only constants have a scope.
Gets/sets the end of the scope or null if it has no scope or if the scope ends at the end of the body. Only constants have a scope.
Gets the tuple element names
Constructor
Constructor
Initial capacity of
Contains tuple element names for local variables and constants
Returns
Gets the custom debug info guid, see
Gets the tuple element names
Constructor
Constructor
Initial capacity of
Async method stepping info
It's internal and translated to a
Returns
Gets the custom debug info guid, see
Gets the catch handler instruction or null
Gets all async step infos
Constructor
Default namespace
Returns
Gets the custom debug info guid, see
Gets the default namespace
Constructor
Constructor
Default namespace
Dynamic flags
Returns
Gets the custom debug info guid, see
Gets/sets the dynamic flags
Constructor
Constructor
Dynamic flags
Contains the source code
Returns
Gets the custom debug info guid, see
Gets the source code blob.
It's not decompressed and converted to a string because the encoding isn't specified.
https://github.com/dotnet/corefx/blob/master/src/System.Reflection.Metadata/specs/PortablePdb-Metadata.md#embedded-source-c-and-vb-compilers
Constructor
Constructor
Source code blob
Contains the source link file
Returns
Gets the custom debug info guid, see
Gets the source link file contents
Constructor
Constructor
Source link file contents
Contains the source server file
Returns
Gets the custom debug info guid, see
Gets the source server file contents
Constructor
Constructor
Source server file contents
Async method info
Returns
Gets the custom debug info guid, see
Gets/sets the starting method that initiates the async operation
Gets/sets the instruction for the compiler generated catch handler that wraps an async method.
This can be null.
Gets all step infos used by the debugger
Constructor
Constructor
Default capacity for
Async step info used by debuggers
The yield instruction
Resume method
Resume instruction (where the debugger puts a breakpoint)
Constructor
The yield instruction
Resume method
Resume instruction (where the debugger puts a breakpoint)
Iterator method
Returns
Gets the custom debug info guid, see
Gets the kickoff method
Constructor
Constructor
Kickoff method
A PDB document
Gets/sets the document URL
Gets/sets the language GUID. See
Gets/sets the language vendor GUID. See
Gets/sets the document type GUID. See
Gets/sets the checksum algorithm ID. See
Gets/sets the checksum
Gets all custom debug infos
Default constructor
Constructor
A instance
Constructor
Document URL
Language. See
Language vendor. See
Document type. See
Checksum algorithm ID. See
Checksum
PDB document constants
PDB file kind
Windows PDB
Portable PDB
Embedded portable PDB
Import scope
Constructor
Gets/sets the parent import scope
Gets all imports
true if is not empty
Gets all custom debug infos
Import kind
PDB import base class
Gets the import kind
Import namespace
Returns
Gets the target namespace
Constructor
Constructor
Import assembly, namespace
Returns
Gets the target assembly
Gets the target namespace
Constructor
Constructor
Import type
Returns
Gets the target type
Constructor
Constructor
Import xml namespace
Returns
Gets the alias
Gets the target namespace
Constructor
Constructor
Import assembly reference alias
Returns
Gets the alias
Constructor
Constructor
Alias assembly reference
Returns
Gets the alias
Gets the target assembly
Constructor
Constructor
Alias namespace
Returns
Gets the alias
Gets the target namespace
Constructor
Constructor
Alias assembly namespace
Returns
Gets the alias
Gets the target assembly
Gets the target namespace
Constructor
Constructor
Alias type
Returns
Gets the alias
Gets the target type
Constructor
Constructor
A local variable
Constructor
Constructor
Gets/sets the local
Gets/sets the name
Gets/sets the attributes
Gets the index of the local
true if it should be hidden in debugger variables windows. Not all compiler generated locals have this flag set.
Gets all custom debug infos
Local attributes
No bit is set
Local should be hidden in debugger variables windows. Not all compiler generated locals have this flag set.
A PDB method
Gets/sets the root scope. It contains all scopes of the method, using namespaces, variables and constants
Constructor
PDB reader options
No bit is set
Use the COM Windows PDB reader instead of the managed Windows PDB reader.
This is NOT recommended since the COM reader can only be called on the same
thread it was created on. It also requires a Windows OS.
If this is not set, the managed PDB reader will be used.
This option is only used if it's a Windows PDB file, not if it's a Portable PDB file.
Don't use Microsoft.DiaSymReader.Native. This is a NuGet package with an updated Windows PDB reader/writer implementation,
and if it's available at runtime, dnlib will try to use it. If this option is set, dnlib won't use it.
You have to add a reference to the NuGet package if you want to use it, dnlib has no reference to the NuGet package.
Only used if is set and if it's a Windows PDB file
Don't use diasymreader.dll's PDB reader that is shipped with .NET Framework.
Only used if is set and if it's a Windows PDB file
A PDB scope
Constructor
Gets/sets the first instruction
Gets/sets the last instruction. It's null if it ends at the end of the method.
Gets all child scopes
true if is not empty
Gets all locals in this scope
true if is not empty
Gets all namespaces (Windows PDBs). Portable PDBs use
true if is not empty
Gets/sets the import scope (Portable PDBs). Windows PDBs use
Gets all constants
true if is not empty
Gets all custom debug infos
PDB state for a
Gets/sets the PDB file kind. You can change it from portable PDB to embedded portable PDB
and vice versa. Converting a Windows PDB to a portable PDB isn't supported.
Gets/sets the user entry point method.
Gets all PDB documents
true if is not empty
Constructor
Module
PDB file kind
Constructor
A instance
Owner module
Adds
New document
if it wasn't inserted, or the already existing document
if it was already inserted.
Removes
Document
true if it was removed, false if it wasn't inserted.
Returns an inserted instance or null if it's not been
inserted yet.
A PDB document
The existing or null if it doesn't exist.
Removes all documents
Removes all documents and optionally returns them
true if all the original s
should be returned.
All s if is true
or null if is false.
Constructor
Module that resolves assembly and type references
Portable PDB blob stream
PDB sequence point
PDB document
Start line
Start column
End line
End column
Clones this instance
A new cloned instance
Async step info
Yield offset
Breakpoint offset
Breakpoint method token
Constructor
Yield offset
Breakpoint offset
Breakpoint method token
A document
Gets the URL
Gets the language
Gets the language vendor
Gets the document type
Gets the checksum algorithm id
Gets the checksum
Gets the custom debug infos
A method
Gets the method token
Gets the root scope
Gets all sequence points
Reads custom debug info
Method
Method body
Updated with custom debug info
A namespace
Gets the name
Reads symbols from a PDB file
Called by the owner module before any other methods and properties are called
Owner module
Gets the PDB file kind
Gets the user entry point token or 0 if none
Gets all documents
Gets a method or returns null if the method doesn't exist in the PDB file
Method
Edit and continue version. The first version is 1
Reads custom debug info
Token of a instance
Generic parameter context
Updated with custom debug info
Cleans up resources
A scope
Gets the method
Gets the parent scope
Gets the start offset of the scope in the method
Gets the end offset of the scope in the method
Gets all child scopes
Gets all locals defined in this scope
Gets all namespaces in this scope
Gets all custom debug infos
Gets the import scope or null if none
Gets all the constants
Owner module if a signature must be read from the #Blob
Generic parameter context
Sequence point
IL offset
Document
Start line
Start column
End line
End column
A variable
Gets the name
Gets the attributes
Gets the index of the variable
Gets all custom debug infos
Reads custom debug infos produced by the C# and Visual Basic compilers. They're stored in PDB files
as PDB method custom attributes with the name "MD2".
Reads custom debug info
Method
The method's body. Needs to be provided by the caller since we're called from
PDB-init code when the Body property hasn't been initialized yet
Place all custom debug info in this list
Custom debug info from the PDB file
Writes custom debug infos produced by the C# and Visual Basic compilers. They're stored in PDB files
as PDB method custom attributes with the name "MD2".
Returns the raw custom debug info or null if there was an error
Metadata
Writer context
Method
Custom debug infos to write
P/Invoke attributes, see CorHdr.h/CorPinvokeMap
Pinvoke is to use the member name as specified.
Use this mask to retrieve the CharSet information.
Information about target function. Not relevant for fields.
Pinvoke will use native callconv appropriate to target windows platform.
In M9, pinvoke will raise exception.
Property attributes, see CorHdr.h/CorPropertyAttr
property is special. Name describes how.
Runtime(metadata internal APIs) should check name encoding.
Property has default
A high-level representation of a row in the Property table
The row id in its table
From column Property.PropFlags
Attributes
From column Property.Name
Name
From column Property.Type
Called to initialize
Reset
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
Gets/sets the first getter method. Writing null will clear all get methods.
Gets/sets the first setter method. Writing null will clear all set methods.
Gets all getter methods
Gets all setter methods
Gets the other methods
Initializes , ,
and .
Reset , ,
true if there are no methods attached to this property
true if is not empty
true if is not null
Gets the constant element type or if there's no constant
Gets/sets the property sig
Gets/sets the declaring type (owner type)
Called by and should normally not be called by any user
code. Use instead. Only call this if you must set the
declaring type without inserting it in the declaring type's method list.
Gets the full name of the property
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
A Property row created by the user and not present in the original .NET file
Default constructor
Constructor
Name
Constructor
Name
Property signature
Constructor
Name
Property signature
Flags
Created from a row in the Property table
The module where this instance is located
Constructor
The module which contains this Property row
Row ID
If is null
If is invalid
Represents a public key
Gets the
Constructor
Constructor
Public key data
Constructor
Public key data as a hex string or the string "null"
to set public key data to null
Public key / public key token base class
The key data
Returns true if is null or empty
Returns true if is null
Gets/sets key data
Gets the
Constructor
Key data
Constructor
Key data as a hex string or the string "null"
to set key data to null
Checks whether a public key or token is null or empty
Public key or token instance
Returns a
A or a instance
Compares two s as s
First
Second
< 0 if a < b, 0 if a == b, > 0 if a > b
Checks whether two public key tokens are equal
First
Second
true if same, false otherwise
Compares two s
First
Second
< 0 if a < b, 0 if a == b, > 0 if a > b
Checks whether two public key tokens are equal
First
Second
true if same, false otherwise
Gets the public key token hash code
Public key or token
The hash code
Gets the public key token hash code
Public key token
The hash code
Creates a
Public key data or null
A new instance or null if
was null
Creates a
Public key token data or null
A new instance or null if
was null
Gets the raw public key / public key token byte array
The instance or null
Raw public key / public key token data or null
Represents a public key token
Gets the
Constructor
Recursion counter
Max recursion count. If this is reached, we won't continue, and will use a default value.
Gets the recursion counter
Increments if it's not too high. ALL instance methods
that can be called recursively must call this method and
(if this method returns true)
true if it was incremented and caller can continue, false if
it was not incremented and the caller must return to its caller.
Must be called before returning to caller if
returned true.
Extension methods for reflection types, methods, fields
Checks whether it's a
The type
Gets a 's
The type
The type's element type
Returns true if is a generic method, but
not a generic method definition, i.e., a MethodSpec.
The method
Checks whether a parameter/prop/event type should be treated as if it is really a
generic instance type and not a generic type definition. In the .NET metadata (method
sig), the parameter is a generic instance type, but the CLR treats it as if it's just
a generic type def. This seems to happen only if the parameter type is exactly the same
type as the declaring type, eg. a method similar to: MyType<!0> MyType::SomeMethod().
Declaring type of method/event/property
Parameter/property/event type
Checks whether is a type definition and not a type spec
(eg. pointer or generic type instantiation)
this
Resolve exception base class
Default constructor
Constructor
Exception message
Constructor
Exception message
Inner exception or null if none
Constructor
Thrown if an assembly couldn't be resolved
Default constructor
Constructor
Exception message
Constructor
Exception message
Inner exception or null if none
Constructor
Thrown if a type couldn't be resolved
Default constructor
Constructor
Exception message
Constructor
Exception message
Inner exception or null if none
Constructor
Thrown if a method/field couldn't be resolved
Default constructor
Constructor
Exception message
Constructor
Exception message
Inner exception or null if none
Constructor
Resolves types, methods, fields
true to project WinMD types to CLR types, eg. Windows.UI.Xaml.Interop.TypeName
gets converted to System.Type before trying to resolve the type. This is enabled
by default.
Constructor
The assembly resolver
Type of resource
It's a
It's a
It's a
Resource base class
Gets/sets the offset of the resource
Gets/sets the name
Gets/sets the flags
Gets the type of resource
Gets/sets the visibility
true if is set
true if is set
Constructor
Name
flags
A resource that is embedded in a .NET module. This is the most common type of resource.
Gets the length of the data
Constructor
Name of resource
Resource data
Resource flags
Constructor
Name of resource
Data reader factory
Offset of resource data
Length of resource data
Resource flags
Gets a data reader that can access the resource
A reference to a resource in another assembly
Gets/sets the assembly reference
Constructor
Name of resource
Assembly reference
Resource flags
A resource that is stored in a file on disk
Gets/sets the file
Gets/sets the hash
Gets/sets the file name
Constructor
Name of resource
The file
Resource flags
A collection of s
Default constructor
Constructor
List listener
Constructor
Initial length of the list
Context passed to
Delegate instance that returns original values
Finds the index of a resource
Name of resource
The index of the or -1 if none was found
Finds the index of an embedded resource
Name of resource
The index of the or -1 if none was found
Finds the index of an assembly linked resource
Name of resource
The index of the or -1 if none was found
Finds the index of a linked resource
Name of resource
The index of the or -1 if none was found
Finds a resource
Name of resource
The or null if none was found
Finds an embedded resource
Name of resource
The or null if none was found
Finds an assembly linked resource
Name of resource
The or null if none was found
Finds a linked resource
Name of resource
The or null if none was found
Built-in resource data
Gets the data
Constructor
Type of data
Data
Implemented by all resource data
Gets the type of data
Start offset of the section in the file
End offset of the section in the file. This is one byte after the last
valid offset in the section.
Writes the data
Writer
Formatter if needed by implementer
Creates resource data
Gets the owner module
Constructor
Owner module
Gets number of user data types
Create null data
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates data
Value
Creates array data
Value
Creates data
Value
Creates serialized data
Serialized data
Type of serialized data
Creates serialized data
Serialized data
Creates a user type. If the type already exists, the existing value is returned.
Full name of type
Creates a user type. If the type already exists, the existing value is returned.
Full name of type
Use without converting it to a
type in an existing assembly reference
Converts an assembly simple name (eg. mscorlib) to the full name of the assembly,
which includes the version, public key token, etc. Returns null if it's
unknown.
Simple name of assembly
Gets all types sorted by
Resource element
Name of resource
Data of resource
Resource element set
Gets the number of elements in the set
Gets all resource elements
Adds a new resource to the set, overwriting any existing resource
Thrown by
Constructor
Constructor
Message
Constructor
Gets called to create a from serialized data. Returns null
if a default instance should be created.
ResourceDataFactory
Serialized type
Serialized data
Reads .NET resources
Returns true if it's possibly resources file data
Reader
Reads a .NET resource
Owner module
Data of resource
Reads a .NET resource
Owner module
Data of resource
Call back that gets called to create a instance. Can be null.
Type of resource
null
array
Start of user types
Writes .NET resources
Write .NET resources
Owner module
Output stream
.NET resources
Base class of all user data
Full name including assembly of type
User type code
Constructor
User resource type
Binary data
Gets the raw data
Constructor
User resource type
Raw serialized data
User resource type
Full name including assembly of type
User type code
Constructor
Full name including assembly of type
User type code
Security action. See CorHdr.h/CorDeclSecurity
Mask allows growth of enum.
Persisted grant set at prejit time
Persisted grant set at prejit time
Persisted denied set at prejit time
Persisted denied set at prejit time
Maximum legal value
A DeclSecurity security attribute
Gets/sets the attribute type
Gets the full name of the attribute type
Gets all named arguments (field and property values)
true if is not empty
Gets all s that are field arguments
Gets all s that are property arguments
Creates a from an XML string.
Owner module
XML
A new instance
Default constructor
Constructor
Attribute type
Constructor
Attribute type
Named arguments that will be owned by this instance
See CorSerializationType/CorHdr.h
System.Boolean
System.Char
System.SByte
System.Byte
System.Int16
System.UInt16
System.Int32
System.UInt32
System.Int64
System.UInt64
System.Single
System.Double
System.String
Single-dimension, zero lower bound array ([])
System.Type
Boxed value type
A field
A property
An enum
Compares types
Default instance
Case insensitive names
Constructor
Comparison options
Compares fields
Compares the declaring types
Doesn't compare the declaring types
Compares the declaring types, case insensitive names
Doesn't compare the declaring types, case insensitive names
Constructor
Comparison options
Compares methods
Compares the declaring types
Doesn't compare the declaring types
Compares the declaring types, case insensitive names
Doesn't compare the declaring types, case insensitive names
Constructor
Comparison options
Compares properties
Compares the declaring types
Doesn't compare the declaring types
Compares the declaring types, case insensitive names
Doesn't compare the declaring types, case insensitive names
Constructor
Comparison options
Compares events
Compares the declaring types
Doesn't compare the declaring types
Compares the declaring types, case insensitive names
Doesn't compare the declaring types, case insensitive names
Constructor
Comparison options
Compares calling convention signatures
Default instance
Case insensitive names
Constructor
Comparison options
Decides how to compare types, sigs, etc
Don't compare a type's (assembly/module) scope
Compares a method/field's declaring type.
Compares a property's declaring type
Compares an event's declaring type
Compares method / field / property / event declaring types
Compares parameters after a sentinel in method sigs. Should not be enabled when
comparing s against s since it's
not possible to get those sentinel params from a .
Compares assembly public key token
Compares assembly version
Compares assembly locale
If set, a and an can reference the
global <Module> type.
Don't compare a method/property's return type
Type namespaces are case insensitive
Type names (not namespaces) are case insensitive
Type names and namespaces are case insensitive
Method and field names are case insensitive
Property names are case insensitive
Event names are case insensitive
Type namespaces, type names, method names, field names, property names
and event names are all case insensitive
A field that is can compare equal to
a
A method that is can compare equal to
a
A field that is and a method that is
can compare equal to a
Raw (bit by bit) comparison of signatures. This matches what the CLR does when it
compares signatures. This means that metadata tokens will be compared.
Ignore required and optional modifiers when comparing s.
They're already ignored when comparing eg. a with a
.
By default, all module and assembly compares when they're both the system library
(eg. mscorlib or System.Runtime.dll) return true, even if they're really different,
eg. mscorlib (.NET 2.0) vs mscorlib (Windows CE). If this flag is set, the system
library is compared just like any other module/assembly.
Don't project CLR compatible WinMD references back to the original CLR type/method before comparing
Don't check type equivalence when comparing types. Starting with .NET 4.0, two different
types can be considered equivalent if eg. a TypeIdentifierAttribute is used.
When comparing types, don't compare a multi-dimensional array's lower bounds and sizes
Compares types, signatures, methods, fields, properties, events
Constructor
Comparison options
Constructor
Comparison options
The module which the comparison take place in.
is mapped to , so use
the same hash code for both
Compare members
Member #1
Member #2
true if same, false otherwise
Gets the hash code of a member
The member
The hash code
Compares types
Type #1
Type #2
true if same, false otherwise
Gets the hash code of a type
The type
The hash code
Compares types
Type #1
Type #2
true if same, false otherwise
Gets the hash code of a type
The type
The hash code
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Gets the hash code of a type
The type
The hash code
Compares types
Type #1
Type #2
true if same, false otherwise
Gets the hash code of a type
The type
The hash code
Compares types
Type #1
Type #2
true if same, false otherwise
Gets the hash code of a type
The type
The hash code
Compares types
Type #1
Type #2
true if same, false otherwise
Gets the hash code of a type
The type
The hash code
Compares resolution scopes
Type #1
Type #2
true if same, false otherwise
Compares implementation
Type #1
Type #2
true if same, false otherwise
Compares resolution scope and implementation
Type #1
Type #2
true if same, false otherwise
Compares files
File #1
File #2
true if same, false otherwise
Compares a module with a file
Module
File
true if same, false otherwise
Compares modules
Module #1
Module #2
true if same, false otherwise
Compares modules
Module #1
Module #2
true if same, false otherwise
Compares assemblies
Assembly #1
Assembly #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Gets the hash code of a type
The type
The hash code
Compares type lists
Type list #1
Type list #2
true if same, false otherwise
Gets the hash code of a type list
The type list
The hash code
Compares signatures
Sig #1
Sig #2
true if same, false otherwise
Gets the hash code of a sig
The sig
The hash code
Compares method/property sigs
Method/property #1
Method/property #2
true if same, false otherwise
Gets the hash code of a method/property sig
The method/property sig
The hash code
Compares field sigs
Field sig #1
Field sig #2
true if same, false otherwise
Gets the hash code of a field sig
The field sig
The hash code
Compares local sigs
Local sig #1
Local sig #2
true if same, false otherwise
Gets the hash code of a local sig
The local sig
The hash code
Compares generic method instance sigs
Generic inst method #1
Generic inst method #2
true if same, false otherwise
Gets the hash code of a generic instance method sig
The generic inst method sig
The hash code
Compares methods
Method #1
Method #2
true if same, false otherwise
Gets the hash code of a method
The method
The hash code
Compares methods
Method #1
Method #2
true if same, false otherwise
Compares methods
Method #1
Method #2
true if same, false otherwise
Compares methods
Method #1
Method #2
true if same, false otherwise
Gets the hash code of a method
The method
The hash code
Compares MemberRefs
MemberRef #1
MemberRef #2
true if same, false otherwise
Gets the hash code of a MemberRef
The MemberRef
The hash code
Compares MethodSpecs
MethodSpec #1
MethodSpec #2
true if same, false otherwise
Gets the hash code of a MethodSpec
The MethodSpec
The hash code
Compares MemberRefParents
MemberRefParent #1
MemberRefParent #2
true if same, false otherwise
Gets the hash code of a MemberRefParent
The MemberRefParent
The hash code
Compares fields
Field #1
Field #2
true if same, false otherwise
Gets the hash code of a field
The field
The hash code
Compares fields
Field #1
Field #2
true if same, false otherwise
Compares fields
Field #1
Field #2
true if same, false otherwise
Compares fields
Field #1
Field #2
true if same, false otherwise
Gets the hash code of a field
The field
The hash code
Compares properties
Property #1
Property #2
true if same, false otherwise
Gets the hash code of a property
The property
The hash code
Compares events
Event #1
Event #2
true if same, false otherwise
Gets the hash code of an event
The event
The hash code
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Checks whether it's FnPtr&, FnPtr*, FnPtr[], or FnPtr[...]
The type
Compares types
Type #1
Type #2
true if we should treat
as a generic instance type
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Compares types
Type #1
Type #2
true if same, false otherwise
Gets the hash code of a type
The type
The hash code
Gets the hash code of a type
The type
true if we should treat
as a generic instance type
The hash code
Gets the hash code of a type list
The type list
The hash code
Gets the hash code of a list with only generic method parameters ()
Number of generic method parameters
Hash code
Gets the hash code of a TypeDef type
The type
The hash code
Compares type lists
Type list #1
Type list #2
true if same, false otherwise
Compares modules
Module #1
Module #2
true if same, false otherwise
Compares a file and a module
File
Module
true if same, false otherwise
Compares modules
Module #1
Module #2
true if same, false otherwise
Compares assemblies
Assembly #1
Assembly #2
true if same, false otherwise
Compares method declaring types
Method #1
Method #2
true if same, false otherwise
Compares methods
Method #1
Method #2
true if same, false otherwise
Compares methods
Method #1
Method #2
true if same, false otherwise
Compares methods
Method #1
Method #2
true if same, false otherwise
Compares methods
Method #1
Method #2
true if same, false otherwise
Compares method sigs
Method #1
Method #2
true if same, false otherwise
Compares method sigs
Method #1
Method #2
true if same, false otherwise
Compares methods
Method #1
Method #2
true if same, false otherwise
Compares methods
Method #1
Method #2
true if same, false otherwise
Compares generic method args, making sure only
contains s.
Number of generic method args in method #1
Generic method args in method #2
true if same, false otherwise
Compares methods
Method #1
Method #2
true if same, false otherwise
Compares methods
Method #1
Method #2
true if same, false otherwise
Gets the hash code of a MethodBase
The MethodBase
The hash code
Gets the hash code of a parameter list
The type list
Declaring type of method that owns parameter
The hash code
Compares calling conventions
Calling convention
Method
Compares return types
Return type #1
MethodBase
true if same, false otherwise
Compares parameter lists
Type list #1
Type list #2
Declaring type of method that owns parameter
true if same, false otherwise
Compares parameter types
Parameter type #1
Parameter #2
Declaring type of method that owns parameter
true if same, false otherwise
Compares fields
Field #1
Field #2
true if same, false otherwise
Compares fields
Field #1
Field #2
true if same, false otherwise
Compares fields
Field #1
Field #2
true if same, false otherwise
Compares fields
Field #1
Field #2
true if same, false otherwise
Compares fields
Field #1
Field #2
true if same, false otherwise
Compares fields
Field #1
Field #2
true if same, false otherwise
Gets the hash code of a field
The field
The hash code
Compares properties
Property #1
Property #2
true if same, false otherwise
Gets the hash code of a property
The property
The hash code
Compares events
Event #1
Event #2
true if same, false otherwise
Gets the hash code of an event
The event
The hash code
Helps resolve types
Resolves a
A TypeDefOrRef coded token
Generic parameter context
A or null if
is invalid
Converts the address of a to a
Address of . This is also known as the
method table and has the same value as
A or null if not supported
Reads signatures from the #Blob stream
Reads a signature from the #Blob stream
Reader module
#Blob stream offset of signature
A new instance or null if
is invalid.
Reads a signature from the #Blob stream
Reader module
#Blob stream offset of signature
Generic parameter context
A new instance or null if
is invalid.
Reads a signature
The module where the signature is located in
The signature data
A new instance or null if
is invalid.
Reads a signature
The module where the signature is located in
The signature data
Generic parameter context
A new instance or null if
is invalid.
Reads a signature
The module where the signature is located in
The signature reader
A new instance or null if
is invalid.
Reads a signature
The module where the signature is located in
The signature reader
Generic parameter context
A new instance or null if
is invalid.
Reads a signature
Token resolver
A instance
The signature data
A new instance or null if
is invalid.
Reads a signature
Token resolver
A instance
The signature data
Generic parameter context
A new instance or null if
is invalid.
Reads a signature
Token resolver
A instance
The signature reader
A new instance or null if
is invalid.
Reads a signature
Token resolver
A instance
The signature reader
Generic parameter context
A new instance or null if
is invalid.
Reads a type signature from the #Blob stream
Reader module
#Blob stream offset of signature
A new instance or null if
is invalid.
Reads a type signature from the #Blob stream
Reader module
#Blob stream offset of signature
Generic parameter context
A new instance or null if
is invalid.
Reads a type signature from the #Blob stream
Reader module
#Blob stream offset of signature
If there's any extra data after the signature, it's saved
here, else this will be null
A new instance or null if
is invalid.
Reads a type signature from the #Blob stream
Reader module
#Blob stream offset of signature
Generic parameter context
If there's any extra data after the signature, it's saved
here, else this will be null
A new instance or null if
is invalid.
Reads a signature
The module where the signature is located in
The signature data
A new instance or null if
is invalid.
Reads a signature
The module where the signature is located in
The signature data
Generic parameter context
A new instance or null if
is invalid.
Reads a signature
The module where the signature is located in
The signature reader
A new instance or null if
is invalid.
Reads a signature
The module where the signature is located in
The signature reader
Generic parameter context
A new instance or null if
is invalid.
Reads a signature
Token resolver
A instance
The signature data
A new instance or null if
is invalid.
Reads a signature
Token resolver
A instance
The signature data
Generic parameter context
A new instance or null if
is invalid.
Reads a signature
Token resolver
A instance
The signature reader
A new instance or null if
is invalid.
Reads a signature
Token resolver
A instance
The signature reader
Generic parameter context
A new instance or null if
is invalid.
Reads a signature
Token resolver
A instance
The signature data
Generic parameter context
If there's any extra data after the signature, it's saved
here, else this will be null
A new instance or null if
is invalid.
Reads a signature
Token resolver
A instance
The signature reader
Generic parameter context
If there's any extra data after the signature, it's saved
here, else this will be null
A new instance or null if
is invalid.
Constructor
Reader module
#Blob stream offset of signature
Generic parameter context
Constructor
Token resolver
A instance
The signature data
Generic parameter context
Reads the signature
A new instance or null if invalid signature
Reads a
First byte of signature
A new instance
Reads a
First byte of signature
A new instance
Reads a
First byte of signature
A new instance
Reads a
First byte of signature
A new instance
Reads a
First byte of signature
A new instance
Reads the next type
A new instance or null if invalid element type
A high-level representation of a row in the StandAloneSig table
The row id in its table
From column StandAloneSig.Signature
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
Gets/sets the method sig
Gets/sets the locals sig
A StandAloneSig row created by the user and not present in the original .NET file
Default constructor
Constructor
A locals sig
Constructor
A method sig
Created from a row in the StandAloneSig table
The module where this instance is located
Constructor
The module which contains this StandAloneSig row
Row ID
Generic parameter context
If is null
If is invalid
Thrown if the strong name key or public key is invalid
Default constructor
Constructor
Error message
Constructor
Error message
Other exception
Constructor
Type of signature algorithm. See WinCrypt.h in the Windows SDK
RSA signature algorithm
A public key
Gets/sets the signature algorithm
Gets/sets the hash algorithm
Gets/sets the modulus
Gets/sets the public exponent
Default constructor
Constructor
Modulus
Public exponent
Constructor
Modulus
Public exponent
Hash algorithm
Constructor
Modulus
Public exponent
Hash algorithm
Signature algorithm
Constructor
Public key
Constructor
Public key data
Strong name key is invalid
Constructor
Public key file
Strong name key is invalid
Constructor
Public key stream
Strong name key is invalid
Constructor
Public key reader
Strong name key is invalid
Creates a public key blob
Stores a strong name key pair
Gets the public key
Gets the strong name signature size in bytes
Gets the public key hash algorithm. It's usually
Gets the public exponent
Gets the modulus
Gets prime1
Gets prime2
Gets exponent1
Gets exponent2
Gets the coefficient
Gets the private exponent
Constructor
Strong name key data
Strong name key is invalid
Constructor
Strong name key file
Strong name key is invalid
Constructor
Strong name key stream
Strong name key is invalid
Constructor
Strong name key reader
Strong name key is invalid
Creates a strong name key with a new hash algorithm
Algorithm
Creates an instance
Creates a strong name blob
Creates a counter signature, just like
sn -a IdentityPubKey.snk IdentityKey.snk SignaturePubKey.snk can do.
The public key sn prints is 's value.
Identity public key
Identity strong name key pair
Signature public key
The counter signature as a hex string
Creates a counter signature, just like
sn -a IdentityPubKey.snk IdentityKey.snk SignaturePubKey.snk can do.
The public key sn prints is 's value.
Identity public key
Identity strong name key pair
Signature public key
The counter signature
Strong name signs an assembly. It supports normal strong name signing and the new
(.NET 4.5) enhanced strong name signing.
Constructor
.NET PE file stream
Constructor
.NET PE file stream
Offset in of the first byte of
the PE file.
Calculates the strong name signature and writes it to the stream. The signature
is also returned.
Strong name key used for signing
Offset (relative to the start of the PE file) of the strong
name signature.
The strong name signature
Calculates and returns the strong name signature
Strong name key used for signing
Offset (relative to start of PE file) of the strong
name signature.
The strong name signature
Strong name hashes the .NET file
Hash algorithm
Strong name sig offset (relative to start of .NET PE file)
Size of strong name signature
The strong name hash of the .NET file
Returns the strong name signature
Strong name key
Hash algorithm
Strong name hash of the .NET PE file
Strong name signature
System.Runtime.InteropServices.TypeIdentifierAttribute helper code used by
TypeDef and ExportedType flags. See CorHdr.h/CorTypeAttr
Use this mask to retrieve the type visibility information.
Class is not public scope.
Class is public scope.
Class is nested with public visibility.
Class is nested with private visibility.
Class is nested with family visibility.
Class is nested with assembly visibility.
Class is nested with family and assembly visibility.
Class is nested with family or assembly visibility.
Use this mask to retrieve class layout information
Class fields are auto-laid out
Class fields are laid out sequentially
Layout is supplied explicitly
Use this mask to retrieve class semantics information.
Use this mask to retrieve class semantics information.
Type is a class.
Type is an interface.
Class is abstract
Class is concrete and may not be extended
Class name is special. Name describes how.
Class / interface is imported
The class is Serializable.
The type is a Windows Runtime type
Use StringFormatMask to retrieve string information for native interop
LPTSTR is interpreted as ANSI in this class
LPTSTR is interpreted as UNICODE
LPTSTR is interpreted automatically
A non-standard encoding specified by CustomFormatMask
Use this mask to retrieve non-standard encoding information for native interop. The meaning of the values of these 2 bits is unspecified.
Initialize the class any time before first static field access.
This ExportedType is a type forwarder.
Flags reserved for runtime use.
Runtime should check name encoding.
Class has security associate with it.
A high-level representation of a row in the TypeDef table
The row id in its table
Always returns false since a does not contain any
or .
Gets/sets the owner module
Called to initialize
From column TypeDef.Flags
Attributes
From column TypeDef.Name
Name
From column TypeDef.Namespace
Name
From column TypeDef.Extends
Called to initialize
Reset
From column TypeDef.FieldList
Initializes
From column TypeDef.MethodList
Initializes
Initializes
Gets the interfaces
Initializes
Initializes
Gets/sets the class layout
Called to initialize
Gets/sets the enclosing type. It's null if this isn't a nested class.
Called by and should normally not be called by any user
code. Use instead. Only call this if you must set the
declaring type without inserting it in the declaring type's method list.
Called to initialize
Gets all the nested types
Initializes
Gets all events
Initializes
Gets all properties
Initializes
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
true if there's at least one in
true if there's at least one in
true if there's at least one in
true if there's at least one in
true if there's at least one in
true if there's at least one in
true if there's at least one in
true if is not null
Gets/sets the packing size. If you write to this property but
is null, it will be created. The value is returned
if is null.
Gets/sets the class size. If you write to this property but
is null, it will be created. The value is returned
if is null.
true if it's an enum
true if it's a delegate (it derives from )
true if this is a nested type (it has a declaring type)
Checks whether this type has opted into equivalence
Modify property: =
( & ) | .
Value to AND
Value to OR
Set or clear flags in
true if flags should be set, false if flags should
be cleared
Flags to set or clear
Gets/sets the visibility
true if is set
true if is set
true if is set
true if is set
true if is set
true if is set
true if is set
true if is set
Gets/sets the layout
true if is set
true if is set
true if is set
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the string format
true if is set
true if is set
true if is set
true if is set
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
true if this is the global (aka. <Module>) type
Gets a list of all nested types and all their nested types
Gets an enum's underlying type or null if none. Should only be called
if this is an enum.
Resolves a method or a field. (owner type) is ignored when
resolving the method/field. Private scope methods/fields are not returned.
A method/field reference
A or a instance or null
if it couldn't be resolved.
Resolves a method or a field. (owner type) is ignored when
resolving the method/field.
A method/field reference
Method/field signature comparison options
A or a instance or null
if it couldn't be resolved.
Finds a method. Private scope methods are not returned.
Method name
Method signature
The first method that matches or null if none found
Finds a method
Method name
Method signature
Method signature comparison options
The first method that matches or null if none found
Finds a method
Method name
Method signature
Method signature comparison options
The module that needs to find the method or null
The first method that matches or null if none found
Finds a method by name
Name of method
The or null if not found
Finds all methods by name
Name of method
All methods with that name
Finds the class constructor (aka type initializer). It's the method named .cctor
The class constructor or null if none found
Finds the class constructor (aka type initializer). It's the method named .cctor.
If it doesn't exist, it is created, inserted into and returned.
The created .cctor will have just one RET instruction.
The class constructor
Finds all instance constructors (not class constructors)
All instance constructors
Finds all static and instance constructors
All static and instance constructors
Finds the default instance constructor (the one with no arguments)
The default instance constructor or null if none
Finds a field. Private scope fields are not returned.
Field name
Field signature
The first field that matches or null if none found
Finds a field
Field name
Field signature
Field signature comparison options
The first field that matches or null if none found
Finds a field
Field name
Field signature
Field signature comparison options
The module that needs to find the field or null
The first field that matches or null if none found
Finds a field by name
Name of field
The or null if not found
Finds all fields by name
Name of field
All fields with that name
Finds an event
Name of event
Type of event
A or null if not found
Finds an event
Name of event
Type of event
Event type comparison options
A or null if not found
Finds an event
Name of event
Type of event
Event type comparison options
The module that needs to find the event or null
A or null if not found
Finds an event by name
Name of event
The or null if not found
Finds all events by name
Name of event
All events with that name
Finds a property
Name of property
Property signature
A or null if not found
Finds a property
Name of property
Property signature
Property signature comparison options
A or null if not found
Finds a property
Name of property
Property signature
Property signature comparison options
The module that needs to find the property or null
A or null if not found
Finds a prop by name
Name of prop
The or null if not found
Finds all props by name
Name of prop
All props with that name
Finds a method by checking this type or any of its base types
Method name
Method signature
The method or null if it wasn't found
Finds a method by checking this type or any of its base types
Method name
Method signature
Method signature comparison options
The method or null if it wasn't found
Finds a method by checking this type or any of its base types
Method name
Method signature
Method signature comparison options
The module that needs to find the method or null
The method or null if it wasn't found
Finds a method by checking this type or any of its base types
Method name
The method or null if it wasn't found
Finds a field by checking this type or any of its base types
Field name
Field signature
The field or null if it wasn't found
Finds a field by checking this type or any of its base types
Field name
Field signature
Field signature comparison options
The field or null if it wasn't found
Finds a field by checking this type or any of its base types
Field name
Field signature
Field signature comparison options
The module that needs to find the field or null
The field or null if it wasn't found
Finds a field by checking this type or any of its base types
Field name
The field or null if it wasn't found
Finds an event by checking this type or any of its base types
Event name
Event type
The event or null if it wasn't found
Finds an event by checking this type or any of its base types
Event name
The event or null if it wasn't found
Finds a property by checking this type or any of its base types
Property name
Property signature
The property or null if it wasn't found
Finds a property by checking this type or any of its base types
Property name
Property signature
Property signature comparison options
The property or null if it wasn't found
Finds a property by checking this type or any of its base types
Property name
Property signature
Property signature comparison options
The module that needs to find the property or null
The property or null if it wasn't found
Finds a property by checking this type or any of its base types
Property name
The property or null if it wasn't found
Removes a method from this type. It also removes it from any properties and events.
The method to remove
Removes a method from this type. It also removes it from any properties and events.
The method to remove
true if we should remove all
empty properties and events.
Gets all fields named
Field name
A list of 0 or more fields with name
Gets the first field named
Field name
The field or null if none found
FInd a method implementation method
Method
A TypeDef row created by the user and not present in the original .NET file
Constructor
Name
Constructor
Namespace
Name
Constructor
Name
Base class or null if it's an interface
Constructor
Namespace
Name
Base class or null if it's an interface
Created from a row in the TypeDef table
The module where this instance is located
Constructor
The module which contains this TypeDef row
Row ID
If is null
If is invalid
Gets all methods overrides
The method
Generic parameter context
A list (possibly empty) of all methods overrides
Initializes all . Only those s
that are property or event handlers get updated.
Initializes a property's special methods
The property
Updated with a list of all get methods
Updated with a list of all set methods
Updated with a list of all other methods
Initializes an event's special methods
The event
Updated with the addOn method or null if none
Updated with the fire method or null if none
Updated with the removeOn method or null if none
Updated with a list of all other methods
Finds s
true if the cache is enabled. false if the cache
is disabled and a slower O(n) lookup is performed.
Constructor
All root types. All their nested types are also included.
If is null
Constructor
All root types
true if all nested types that are reachable
from should also be included.
If is null
Resets the cache (clears all cached elements). Use this method if the cache is
enabled but some of the types have been modified (eg. removed, added, renamed).
Gets the next or null if there are no more left
The next or null if none
Gets the next or null if there are no more left.
The cache is updated with the returned before the method
returns.
The next or null if none
Various helper methods for classes to prevent infinite recursion
Checks whether contains a or a
.
Calling convention signature
true if contains a
or a .
Checks whether contains a or a
.
Field signature
true if contains a
or a .
Checks whether contains a or a
.
Method or property signature
true if contains a
or a .
Checks whether contains a or a
.
Local signature
true if contains a
or a .
Checks whether contains a or a
.
Generic method signature
true if contains a
or a .
Checks whether contains a or a
.
Type
true if contains a or a
.
Checks whether contains a or a
.
Type
true if contains a or a
.
Checks whether contains a or a
.
Type
true if contains a or a
.
Checks whether contains a or a
.
Type
true if contains a or a
.
Checks whether contains a or a
.
Type
true if contains a or a
.
Checks whether contains a or a
.
Type
true if contains a or a
.
Thrown by when it fails to parse a type name
Default constructor
Constructor
Exception message
Constructor
Exception message
Inner exception or null if none
Constructor
Helps create types
Finds a 's when the original assembly
info is missing from the full type name.
A non-nested
's or null
Parses a type name and creates an
Owner module
Parses a Reflection type name and creates a
Module that will own the returned or null
Full name of type
Helper class
A new instance
If parsing failed
Parses a Reflection type name and creates a
Module that will own the returned or null
Full name of type
Helper class
Generic parameter context
A new instance
If parsing failed
Parses a Reflection type name and creates a
Module that will own the returned or null
Full name of type
Helper class
A new instance or null if parsing failed
Parses a Reflection type name and creates a
Module that will own the returned or null
Full name of type
Helper class
Generic parameter context
A new instance or null if parsing failed
Parses a Reflection type name and creates a
Module that will own the returned or null
Full name of type
Helper class
A new instance
If parsing failed
Parses a Reflection type name and creates a
Module that will own the returned or null
Full name of type
Helper class
Generic parameter context
A new instance
If parsing failed
Parses a Reflection type name and creates a
Module that will own the returned or null
Full name of type
Helper class
A new instance or null if parsing failed
Parses a Reflection type name and creates a
Module that will own the returned or null
Full name of type
Helper class
Generic parameter context
A new instance or null if parsing failed
Constructor
Module that will own the returned or null
Full name of type
Helper class
Constructor
Module that will own the returned or null
Full name of type
Helper class
Generic parameter context
Parses a type name and creates a
A new instance
If parsing failed
Parses a type name and creates a
A new instance
If parsing failed
Increment recursion counter
If this method has been called too many times
Decrement recursion counter
Dispose method
true if called by
Reads a including any possible nested s.
Character separating nested types
A new instance, which could be nested.
Reads a namespace and name and creates a TypeRef. Does not read any nested types.
A new instance
Peeks the next char. -1 if no more chars.
Gets the next char or -1 if no more chars
Gets the next ID char or -1 if no more ID chars
true if white space should be ignored
Parses reflection type names. Grammar http://msdn.microsoft.com/en-us/library/yfsftwz6.aspx
Constructor
Module that will own the returned or null
Full name of type
Helper class
Constructor
Module that will own the returned or null
Full name of type
Helper class
Generic parameter context
Parses an assembly name
Full assembly name
A new instance or null if parsing failed
Parses an assembly name
Full assembly name
Generic parameter context
A new instance or null if parsing failed
A high-level representation of a row in the TypeRef table
The row id in its table
The owner module
Always returns false since a does not contain any
or .
From column TypeRef.ResolutionScope
Called to initialize
From column TypeRef.Name
Name
From column TypeRef.Namespace
Name
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
true if it's nested within another
Gets the declaring type, if any
Resolves the type
A instance or null if it couldn't be resolved
Resolves the type
The module that needs to resolve the type or null
A instance or null if it couldn't be resolved
Resolves the type
A instance
If the type couldn't be resolved
Resolves the type
The module that needs to resolve the type or null
A instance
If the type couldn't be resolved
Gets the top-most (non-nested)
Input
The non-nested or null
A TypeRef row created by the user and not present in the original .NET file
Constructor
Owner module
Type name
Constructor
Owner module
Type namespace
Type name
Constructor
Owner module
Type namespace
Type name
Resolution scope (a ,
, or )
Created from a row in the TypeRef table
The module where this instance is located
Constructor
The module which contains this TypeRef row
Row ID
If is null
If is invalid
Type sig base class
Returns the wrapped element type. Can only be null if it was an invalid sig or
if it's a
Gets the element type
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a or a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if it's a
true if this contains a or a
.
Base class for element types that are last in a type sig, ie.,
, , ,
,
Wraps a
Gets the the TypeDefOrRef
Returns true if != null
Returns true if != null
Returns true if != null
Gets the or null if it's not a
Gets the or null if it's not a
Gets the or null if it's not a
Constructor
A , or
a
A core library type
Gets the element type
Constructor
The type which must be a or a
. and null are not allowed.
The type's element type
Base class for class/valuetype element types
Constructor
A
Represents a
Constructor
A
Represents a
Constructor
A
Generic method/type var base class
true if it has an owner or
true if it has an owner ( is
not null)
true if it has an owner ( is
not null)
Gets the owner type or null if the owner is a or if it
has no owner.
Gets the owner method or null if the owner is a or if it
has no owner.
Gets the generic param number
Gets the corresponding or null if none exists.
Constructor
true if it's a Var, false if it's a MVar
Generic param number
Constructor
true if it's a Var, false if it's a MVar
Generic param number
Owner method/type or null
Returns true if it's a MVar element type
Returns true if it's a Var element type
Represents a
Constructor
Generic parameter number
Owner type or null
Constructor
Generic parameter number
Owner type or null
Represents a
Constructor
Generic parameter number
Owner method or null
Constructor
Generic parameter number
Owner method or null
Represents a
Represents a
Gets the signature
Gets the
Constructor
The method signature
Represents a
Gets the generic type
Gets the generic arguments (it's never null)
Default constructor
Constructor
The generic type
Constructor
The generic type
Number of generic arguments
Constructor
The generic type
Number of generic arguments
Constructor
The generic type
Generic argument #1
Constructor
The generic type
Generic argument #1
Generic argument #2
Constructor
The generic type
Generic argument #1
Generic argument #2
Generic argument #3
Constructor
The generic type
Generic arguments
Constructor
The generic type
Generic arguments
Base class of non-leaf element types
Constructor
Next sig
Represents a
Constructor
The next element type
Represents a
Constructor
The next element type
Array base class
Constructor
Array type
true if it's a multi-dimensional array (i.e., ),
and false if it's a single-dimensional array (i.e., )
true if it's a single-dimensional array (i.e., ),
and false if it's a multi-dimensional array (i.e., )
Gets/sets the rank (number of dimensions). This can only be set if
is true
Gets all sizes. If it's a , then it will be an empty temporary
list that is re-created every time this method is called.
A list of sizes
Gets all lower bounds. If it's a , then it will be an empty
temporary list that is re-created every time this method is called.
A list of lower bounds
Represents a
Gets/sets the rank (max value is 0x1FFFFFFF)
Gets all sizes (max elements is 0x1FFFFFFF)
Gets all lower bounds (max elements is 0x1FFFFFFF)
Constructor
Array type
Constructor
Array type
Array rank
Constructor
Array type
Array rank
Constructor
Array type
Array rank
Sizes list. This instance will be the owner of this list.
Lower bounds list. This instance will be the owner of this list.
Constructor
Array type
Array rank
Sizes list. This instance will be the owner of this list.
Lower bounds list. This instance will be the owner of this list.
Constructor
Array type
Array rank
Sizes list. This instance will be the owner of this list.
Lower bounds list. This instance will be the owner of this list.
Represents a (single dimension, zero lower bound array)
Constructor
The next element type
Base class for modifier type sigs
Returns the modifier type
Constructor
Modifier type
The next element type
Represents a
Represents a
Represents a
Constructor
The next element type
Represents a
Gets/sets the size
Constructor
The next element type
Size of the array
Represents a
Gets/sets the index
Constructor
Index
The next element type
A high-level representation of a row in the TypeSpec table
The row id in its table
From column TypeSpec.Signature
Gets/sets the extra data that was found after the signature
Called to initialize
Gets all custom attributes
Initializes
Gets all custom debug infos
Initializes
A TypeSpec row created by the user and not present in the original .NET file
Default constructor
Constructor
A type sig
Created from a row in the TypeSpec table
The module where this instance is located
Constructor
The module which contains this TypeSpec row
Row ID
Generic parameter context
If is null
If is invalid
Compares s
The default instance
A UTF-8 encoded string where the original data is kept in memory to avoid conversions
when the data is not really valid UTF-8 encoded data
When comparing strings, a byte compare is performed. The reason is that this
is what the CLR does when comparing strings in the #Strings stream.
An empty
Gets the value as a UTF8 decoded string. Only use it for display purposes,
not for serialization.
Gets the original encoded data. Don't modify this data.
Gets the length of the this as a . I.e., it's the same as
String.Length.
Gets the length of the raw data. It's the same as Data.Length
Checks whether is null or if its data is null.
The instance to check
true if null or empty, false otherwise
Checks whether is null or if its data is null or the
data is zero length.
The instance to check
true if null or empty, false otherwise
Implicit conversion from to
Implicit conversion from to
Converts it to a
The UTF-8 string instace or null
A or null if is null
Converts it to a or an empty string if is null
The UTF-8 string instace or null
A (never null)
Gets the hash code of a
Input
Compares two instances (case sensitive)
Instance #1 or null
Instance #2 or null
< 0 if a < b, 0 if a == b, > 0 if a > b
Compares two instances (case insensitive)
Instance #1 or null
Instance #2 or null
< 0 if a < b, 0 if a == b, > 0 if a > b
Compares two instances (case insensitive)
Instance #1 or null
Instance #2 or null
true if equals, false otherwise
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Constructor
UTF-8 data that this instance now owns
Constructor
The string
Compares two instances
First
Second
true if equals, false otherwise
Checks whether exists in this string
Value to find
true if exists in string or is the
empty string, else false
Checks whether matches the end of this string
Value
Checks whether matches the end of this string
Value
true to ignore case
Culture info
Checks whether matches the end of this string
Value
Comparison type
Checks whether matches the beginning of this string
Value
Checks whether matches the beginning of this string
Value
true to ignore case
Culture info
Checks whether matches the beginning of this string
Value
Comparison type
Compares this instance with
Other string
< 0 if a < b, 0 if a == b, > 0 if a > b
Returns the index of the first character in this string
Character
The index of or -1 if not found
Returns the index of the first character in this string
starting from index
Character
Start index
The index of or -1 if not found
Returns the index of the first character in this string
starting from index for max
characters.
Character
Start index
Max number of chars to scan
The index of or -1 if not found
Returns the index of the first sub string in this string
String
The index of or -1 if not found
Returns the index of the first sub string in this string
starting from index
String
Start index
The index of or -1 if not found
Returns the index of the first sub string in this string
starting from index for max
characters.
String
Start index
Max number of chars to scan
The index of or -1 if not found
Returns the index of the first sub string in this string
starting from index for max
characters.
String
Start index
Max number of chars to scan
Comparison type
The index of or -1 if not found
Returns the index of the first sub string in this string
starting from index
String
Start index
Comparison type
The index of or -1 if not found
Returns the index of the first sub string in this string
String
Comparison type
The index of or -1 if not found
Returns the index of the last character in this string
Character
The index of or -1 if not found
Returns the index of the last character in this string
starting from index
Character
Start index
The index of or -1 if not found
Returns the index of the last character in this string
starting from index for max
characters.
Character
Start index
Max number of chars to scan
The index of or -1 if not found
Returns the index of the last sub string in this string
String
The index of or -1 if not found
Returns the index of the last sub string in this string
starting from index
String
Start index
The index of or -1 if not found
Returns the index of the last sub string in this string
starting from index for max
characters.
String
Start index
Max number of chars to scan
The index of or -1 if not found
Returns the index of the last sub string in this string
starting from index for max
characters.
String
Start index
Max number of chars to scan
Comparison type
The index of or -1 if not found
Returns the index of the last sub string in this string
starting from index
String
Start index
Comparison type
The index of or -1 if not found
Returns the index of the last sub string in this string
String
Comparison type
The index of or -1 if not found
Inserts string at a index
Start index
Value to insert
A new instance with the inserted at position
Removes all characters starting from position
Start index
A new instance
Removes characters starting from position
Start index
Number of characters to remove
A new instance
Replaces all characters with
Character to find
Character to replace all
A new instance
Replaces all sub strings with
Sub string to find
Sub string to replace all
A new instance
Returns a sub string of this string starting at offset
Start index
A new instance
Returns a sub string of this string starting at offset .
Length of sub string is .
Start index
Length of sub string
A new instance
Returns the lower case version of this string
A new instance
Returns the lower case version of this string
Culture info
A new instance
Returns the lower case version of this string using the invariant culture
A new instance
Returns the upper case version of this string
A new instance
Returns the upper case version of this string
Culture info
A new instance
Returns the upper case version of this string using the invariant culture
A new instance
Removes all leading and trailing whitespace characters
A new instance
Compares byte arrays
Default instance
Returns an assembly name string
Simple assembly name
Version or null
Culture or null
Public key / public key token or null
Assembly attributes
An assembly name string
Convert a byte[] to a
All bytes
true if output should be in upper case hex
as a hex string
Converts a hex string to a byte[]
A string with an even number of hex characters
converted to a byte[] or null
if is invalid
Converts a character to a hex digit
Hex character
0x00-0x0F if successful, -1 if is not
a valid hex digit
Compares two byte arrays
Byte array #1
Byte array #2
< 0 if a < b, 0 if a == b, > 0 if a > b
Checks whether two byte arrays are equal
First
Second
true if same, false otherwise
Gets the hash code of a byte array
Byte array
The hash code
Compares two versions
This differs from if the build
and/or revision numbers haven't been initialized or if one of the args is null.
Version #1 or null to be treated as v0.0.0.0
Version #2 or null to be treated as v0.0.0.0
< 0 if a < b, 0 if a == b, > 0 if a > b
Checks whether two versions are the same
This differs from if the build
and/or revision numbers haven't been initialized or if one of the args is null.
Version #1 or null to be treated as v0.0.0.0
Version #2 or null to be treated as v0.0.0.0
true if same, false otherwise
Creates a new instance with no undefined version values (eg.
the build and revision values won't be -1).
A instance
A new instance
Parses a version string
Version string
A new or null if
is an invalid version
Compares two locales (cultures)
First
Second
< 0 if a < b, 0 if a == b, > 0 if a > b
Compares two locales (cultures)
First
Second
true if same, false otherwise
Compares two locales (cultures)
First
Second
< 0 if a < b, 0 if a == b, > 0 if a > b
Compares two locales (cultures)
First
Second
true if same, false otherwise
Gets the hash code of a locale
Value
The hash code
Align up
Value
Alignment
Align up
Value
Alignment
Variant type (VT_XXX in the Windows SDK)
This wasn't present in the blob
All native vtables
Gets/sets the RVA of the vtable fixups
Gets all s
Default constructor
Constructor
Module
See COR_VTABLE_XXX in CorHdr.h
32-bit vtable slots
64-bit vtable slots
Transition from unmanaged code
Also retain app domain
Call most derived method
One VTable accessed by native code
Gets/sets the of this vtable
Gets/sets the flags
true if each vtable slot is 32 bits in size
true if each vtable slot is 64 bits in size
Gets the vtable methods
Default constructor
Constructor
Flags
Constructor
RVA of this vtable
Flgas
Number of methods in vtable
Constructor
RVA of this vtable
Flgas
Vtable methods
Converts WinMD type to a CLR type. Returns null
if it's not a CLR compatible WinMD type.
Owner module or null
Type
Converts WinMD type to a CLR type. Returns null
if it's not a CLR compatible WinMD type.
Owner module or null
Type
true if the returned type is a value type
Converts WinMD type to a CLR type. Returns null
if it's not a CLR compatible WinMD type.
Owner module or null
Type
Converts WinMD type to a CLR type. Returns null
if it's not a CLR compatible WinMD type.
Owner module or null
Type
true if the returned type is a value type
Converts WinMD type to a CLR type. Returns null
if it's not a CLR compatible WinMD type.
Owner module or null
Type
Converts WinMD type to a CLR type. Returns null
if it's not a CLR compatible WinMD type.
Owner module or null
Type
Converts WinMD member reference to a CLR member reference. Returns
null if it's not a CLR compatible WinMD member reference.
Owner module or null
Member reference
Converts WinMD method to a CLR member reference. Returns
null if it's not a CLR compatible WinMD method
Owner module or null
Method
WinMD status
This is not a WinMD file
This is a pure WinMD file (not managed)
This is a managed WinMD file (created by eg. winmdexp.exe)
Writes data
Gets the current position
Constructor
Destination array
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes bytes
Bytes
Writes bytes
Bytes
Source index
Number of bytes to write
#Blob heap
Populates blobs from an existing (eg. to preserve
blob offsets)
The #Blob stream with the original content
Adds data to the #Blob heap
The data
The offset of the data in the #Blob heap
Adds data to the #Blob heap, but does not re-use an existing position
The data
The offset of the data in the #Blob heap
Stores a byte array
Gets the data
Constructor
The data. It will be owned by this instance and can't be modified by
other code if this instance is inserted as a key in a dictionary (because
return value will be different if you modify the array). If
it's never inserted as a key in a dictionary, then the contents can be modified,
but shouldn't be resized after has been called.
Checksum algorithm
SHA-1
SHA-256
SHA-384
SHA-512
Contains a list of s
Default constructor
Add a
The chunk to add or null if none
Chunk alignment
Remove a
The chunk to remove or null if none
Alignment of the chunk, or null if the chunk cannot be removed.
Base class of chunk list types
Chunk type
All chunks
true if has been called
Helper struct
Data
Alignment
Constructor
Chunk
Alignment
Equality comparer for
Constructor
Compares the chunk type
Helps write custom attributes
Writes s
Writes a custom attribute
Helper class
The custom attribute
Custom attribute blob
Writes custom attribute named arguments
Helper class
Named arguments
The named args blob
Write a value
The ctor arg type, field type, or property type
The value to write
Gets the enum's underlying type
An enum type
The underlying type or null if we couldn't resolve the type ref
Converts to a , possibly resolving
a
The type
A or null if we couldn't resolve the
or if is a type spec
A chunk
Constructor
The data
Constructor
The data
Virtual size of
Constructor
The data
Constructor
The data
Virtual size of
Gets the data reader
Replaces the old data with new data. The new data must be the same size as the old data if
has been called. That method gets called after
event
Copies existing data to a new metadata heap
Gets the name of the heap
Constructor
The stream whose data will be copied to the new metadata file
Constructor
Heap name
Heap content
Writes data
Gets/sets the position
Constructor
Destination stream
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes a
Value
Writes bytes
Bytes to write
Writes bytes
Bytes to write
Index to start copying from
Number of bytes to copy
Writes a compressed
Value
Writes a compressed
Gets the size of a compressed , see
Value
Debug directory entry
Gets the header
Gets the data
Constructor
Data
Debug directory chunk
Default debug directory alignment
Constructor
Adds data
Data
Adds data
Data
Adds data
Data
Debug type
Major version
Minor version
Timestamp
Adds data
Data
Debug type
Major version
Minor version
Timestamp
Writes DeclSecurity blobs
Creates a DeclSecurity blob from
Owner module
List of s
Helps this class
A DeclSecurity blob
Creates a DeclSecurity blob from
Owner module
List of s
Helps this class
Optimize serialized type strings in custom attributes.
For more info, see
A DeclSecurity blob
Extension methods
Write zeros
this
Number of zeros
Writes all data to and verifies that all bytes were written
this
Destination
Not all bytes were written
Writes a data directory
Writer
The data
#GUID heap
Adds a guid to the #GUID heap
The guid
The index of the guid in the #GUID heap
Base class of most heaps
true if has been called
true if offsets require 4 bytes instead of 2 bytes.
Gets the raw length of the heap
Raw length of the heap
Writes all data to at its current location.
Destination
Data that gets written to the file
Gets the file offset. This is valid only after has been called.
Gets the RVA. This is valid only after has been called.
Called when the file offset and RVA are known
File offset of this chunk
RVA of this chunk
Gets the raw file length of this chunk. Must only be called after
has been called.
Length of this chunk
Gets the virtual size of this chunk. Must only be called after
has been called.
Virtual size of this chunk
Writes all data to at its current location. It's only
called after and have been called.
You cannot assume that 's file position is the same as this
chunk's file position.
Destination
Implemented by s that can reuse the old data location in the original PE file
Returns true if this chunk fits in the old location
Original RVA of data
Size of the original location
.NET Heap interface
Gets the name of the heap
Checks whether the heap is empty
Called when the heap should be set to read-only mode
Options to
Default major runtime version
Default minor runtime version
Major runtime version
Minor runtime version
Flags
Entry point or null. Either a Method/File token or an RVA.
Default constructor
Constructor
Flags
Constructor
Major runtime version (default is )
Minor runtime version (default is )
Flags
.NET header
Gets/sets the
Gets/sets the .NET resources
Gets/sets the strong name signature
Constructor
Options
Import address table chunk
Gets/sets the
Constructor
true if it's a 64-bit PE file, false if it's a 32-bit PE file
Import directory chunk
Gets/sets the
Gets the RVA of _CorDllMain/_CorExeMain in the import lookup table
Gets RVA of _CorExeMain/_CorDllMain in the IAT
Gets/sets a value indicating whether this is a EXE or a DLL file
Gets/sets the name of the dll which should be imported.
Gets/sets the name of the entry point of the imported dll.
Constructor
true if it's a 64-bit PE file, false if it's a 32-bit PE file
Interface to get and set raw heap data. Implemented by the offset heaps: #Strings,
#GUID, #Blob, and #US.
Type of cooked data
Gets the size of the data as raw data when written to the heap
The data
Size of the data as raw data when written to the heap
Overrides what value should be written to the heap.
Offset of value. Must match an offset returned by
The new raw data. The size must match the raw size exactly.
Gets all inserted raw data and their offsets. The returned array
is owned by the caller.
An enumerable of all raw data and their offsets
Gets notified of errors. The default handler should normally throw since the written data
will probably be invalid. Any error can be ignored.
Called when an error is detected (eg. a null pointer or other invalid value). The error
can be ignored but the written data won't be valid.
Error message
Writes the .sdata blob. We could write the data in any order, but we write the data in the same order as ILASM
PE timestamp
Writes field marshal blobs
Creates a field marshal blob from
Owner module
Marshal type
Helps this class
A field marshal blob or null if is
null
Creates a field marshal blob from
Owner module
Marshal type
Helps this class
Optimize serialized type strings in custom attributes.
For more info, see
A field marshal blob or null if is
null
Calculates max stack usage by using a simple pass over all instructions. This value
can be placed in the fat method header's MaxStack field.
Gets max stack value
All instructions
All exception handlers
Max stack value
Gets max stack value
All instructions
All exception handlers
Updated with max stack value
true if no errors were detected, false otherwise
MD table interface
Gets the table type
true if the table is empty
Gets the number of rows in this table
Gets/sets a value indicating whether it's sorted
true if has been called
Gets/sets the
Called when the table can't be modified any more
Creates rows in a table. Rows can optionally be shared to create a compact table.
The raw row type
Gets the value with rid
The row ID
Constructor
The table type
Equality comparer
Adds a row. If the row already exists, returns a rid to the existing one, else
it's created and a new rid is returned.
The row. It's now owned by us and must NOT be modified by the caller.
The RID (row ID) of the row
Creates a new row even if this row already exists.
The row. It's now owned by us and must NOT be modified by the caller.
The RID (row ID) of the row
Re-adds all added rows. Should be called if rows have been modified after being
inserted.
Reset the table.
Writes s
Writes a Module table
Writer
Metadata
Table
Writes a TypeRef table
Writer
Metadata
Table
Writes a TypeDef table
Writer
Metadata
Table
Writes a FieldPtr table
Writer
Metadata
Table
Writes a Field table
Writer
Metadata
Table
Writes a MethodPtr table
Writer
Metadata
Table
Writes a Method table
Writer
Metadata
Table
Writes a ParamPtr table
Writer
Metadata
Table
Writes a Param table
Writer
Metadata
Table
Writes a InterfaceImpl table
Writer
Metadata
Table
Writes a MemberRef table
Writer
Metadata
Table
Writes a Constant table
Writer
Metadata
Table
Writes a CustomAttribute table
Writer
Metadata
Table
Writes a FieldMarshal table
Writer
Metadata
Table
Writes a DeclSecurity table
Writer
Metadata
Table
Writes a ClassLayout table
Writer
Metadata
Table
Writes a FieldLayout table
Writer
Metadata
Table
Writes a StandAloneSig table
Writer
Metadata
Table
Writes a EventMap table
Writer
Metadata
Table
Writes a EventPtr table
Writer
Metadata
Table
Writes a Event table
Writer
Metadata
Table
Writes a PropertyMap table
Writer
Metadata
Table
Writes a PropertyPtr table
Writer
Metadata
Table
Writes a Property table
Writer
Metadata
Table
Writes a MethodSemantics table
Writer
Metadata
Table
Writes a MethodImpl table
Writer
Metadata
Table
Writes a ModuleRef table
Writer
Metadata
Table
Writes a TypeSpec table
Writer
Metadata
Table
Writes a ImplMap table
Writer
Metadata
Table
Writes a FieldRVA table
Writer
Metadata
Table
Writes a ENCLog table
Writer
Metadata
Table
Writes a ENCMap table
Writer
Metadata
Table
Writes a Assembly table
Writer
Metadata
Table
Writes a AssemblyProcessor table
Writer
Metadata
Table
Writes a AssemblyOS table
Writer
Metadata
Table
Writes a AssemblyRef table
Writer
Metadata
Table
Writes a AssemblyRefProcessor table
Writer
Metadata
Table
Writes a AssemblyRefOS table
Writer
Metadata
Table
Writes a File table
Writer
Metadata
Table
Writes a ExportedType table
Writer
Metadata
Table
Writes a ManifestResource table
Writer
Metadata
Table
Writes a NestedClass table
Writer
Metadata
Table
Writes a GenericParam table
Writer
Metadata
Table
Writes a MethodSpec table
Writer
Metadata
Table
Writes a GenericParamConstraint table
Writer
Metadata
Table
Writes a Document table
Writer
Metadata
Table
Writes a MethodDebugInformation table
Writer
Metadata
Table
Writes a LocalScope table
Writer
Metadata
Table
Writes a LocalVariable table
Writer
Metadata
Table
Writes a LocalConstant table
Writer
Metadata
Table
Writes a ImportScope table
Writer
Metadata
Table
Writes a StateMachineMethod table
Writer
Metadata
Table
Writes a CustomDebugInformation table
Writer
Metadata
Table
flags
Preserves all rids in the TypeRef table
Preserves all rids in the TypeDef table
Preserves all rids in the Field table
Preserves all rids in the Method table
Preserves all rids in the Param table
Preserves all rids in the MemberRef table
Preserves all rids in the StandAloneSig table
Preserves all rids in the Event table
Preserves all rids in the Property table
Preserves all rids in the TypeSpec table
Preserves all rids in the MethodSpec table
Preserves all method rids, i.e., Method, MemberRef and
MethodSpec rids.
Preserves all rids in the following tables: TypeRef, TypeDef,
Field, Method, Param, MemberRef, StandAloneSig,
Event, Property, TypeSpec, MethodSpec
Preserves all offsets in the #Strings heap (the original #Strings heap will be saved
in the new file). Type names, field names, and other non-user strings are stored
in the #Strings heap.
Preserves all offsets in the #US heap (the original #US heap will be saved
in the new file). User strings (referenced by the ldstr instruction) are stored in
the #US heap.
Preserves all offsets in the #Blob heap (the original #Blob heap will be saved
in the new file). Custom attributes, signatures and other blobs are stored in the
#Blob heap.
Preserves the extra data that is present after the original signature in the #Blob
heap. This extra data shouldn't be present but might be present if an obfuscator
has added this extra data and is eg. using it to decrypt stuff.
Preserves as much as possible
The original method body's max stack field should be used and a new one should not
be calculated.
Always create the #GUID heap even if it's empty
Always create the #Strings heap even if it's empty
Always create the #US heap even if it's empty
Always create the #Blob heap even if it's empty
Sort the InterfaceImpl table the same way Roslyn sorts it. Roslyn doesn't sort it
according to the ECMA spec, see https://github.com/dotnet/roslyn/issues/3905
Don't write method bodies
Don't write .NET resources
Don't write field data
Serialized type names stored in custom attributes are optimized if the types
exist in the core library (eg. mscorlib/System.Private.CoreLib).
Instead of storing type-name + assembly-name, only type-name is stored. This results in
slightly smaller assemblies.
If it's a type in the current module, the type name is optimized and no assembly name is stored in the custom attribute.
This is disabled by default. It's safe to enable if the reference core assembly
is the same as the runtime core assembly (eg. it's mscorlib.dll and .NET Framework,
but not .NET Core / .NET Standard).
Metadata heaps event args
Gets the metadata writer
Gets all heaps
Constructor
Metadata writer
All heaps
options
Gets/sets the options. This is never null.
Gets/sets the debug (portable PDB) options. This is never null.
Gets/sets the options. This is never null.
Gets/sets the debug (portable PDB) options. This is never null.
Various options
Extra heaps to add to the metadata. Also see and
Raised after all heaps have been added. The caller can sort the list if needed
Preserves the original order of heaps, and optionally adds all custom heaps to .
Original module with the heaps
If true, all custom streams are added to
Default constructor
Constructor
Flags
Constructor
Meta data header options
Constructor
Meta data header options
Flags
Portable PDB metadata kind
No debugging metadata
Standalone / embedded portable PDB metadata
Metadata writer event args
Gets the metadata writer
Gets the event
Constructor
Writer
Event
Metadata writer progress event args
Gets the metadata writer
Gets the progress, 0.0 - 1.0
Constructor
Writer
Progress, 0.0 - 1.0
.NET meta data
Raised at various times when writing the metadata
Raised when the progress is updated
Gets/sets the logger
Gets the module
Gets the constants
Gets the method body chunks
Gets the .NET resources
Gets the MD header
Gets the tables heap. Access to this heap is not recommended, but is useful if you
want to add random table entries.
Gets the #Strings heap. Access to this heap is not recommended, but is useful if you
want to add random strings.
Gets the #US heap. Access to this heap is not recommended, but is useful if
you want to add random user strings.
Gets the #GUID heap. Access to this heap is not recommended, but is useful if you
want to add random GUIDs.
Gets the #Blob heap. Access to this heap is not recommended, but is useful if you
want to add random blobs.
Gets the #Pdb heap. It's only used if it's portable PDB metadata
Gets all exported methods
The public key that should be used instead of the one in .
Creates a instance
Module
Constants list
Method bodies list
.NET resources list
Options
Debug metadata kind
A new instance
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Gets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
Gets/sets the bit
If true, use the original Field RVAs. If it has no RVA, assume it's a new
field value and create a new Field RVA.
Gets the number of methods that will be written.
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the new rid
Value
Its new rid or 0
Gets the
Method
The or null if is
null or not a method defined in this module.
Gets a method's local variable signature token
Method
Locals sig token or 0
Gets the where the resource data will be stored
Embedded resource
A instance or null if
is invalid
Gets the where the initial value is stored
Field
A instance or null if
is invalid
Called when an error is detected
Error message
Optional message arguments
Called to warn of something
Warning message
Optional message arguments
Raises
Event
Raises the progress event
Base event
Sub progress
Creates the .NET metadata tables
Updates each Method row's RVA column if it has any code
Updates the FieldRVA rows
Initializes all TypeDef, Field, Method, Event,
Property and Param rows. Other tables that are related to these six
tables are also updated. No custom attributes are written yet, though. Method bodies
aren't written either.
Writes TypeDef, Field, Method, Event,
Property and Param custom attributes and custom debug infos.
Adds the tokens of all methods in all vtables, if any
Adds the entry point. It's only needed if it's a since if it's
a , it will have already been added.
Sorts all unsorted tables except GenericParamConstraint and CustomAttribute
Initializes the GenericParamConstraint table
Inserts all custom attribute / custom debug info rows in the tables and sort them
Writes all method bodies
Checks whether a list is empty or whether it contains only nulls
Any type
The list
true if the list is empty or if it contains only nulls, false otherwise
Adds a
Method signature
Original StandAloneSig token or 0 if none
Its new rid
Adds a
FIeld signature
Original StandAloneSig token or 0 if none
Its new rid
Adds a
Value
Its encoded token
Adds a
Value
Its encoded token
Adds a
Value
Its encoded token
Adds a
Value
Its encoded token
Adds a
Value
Its encoded token
Adds a
Value
Its encoded token
Adds a NestedType row
Nested type
Declaring type
Adds a Module row
Module
Its new rid
Adds a ModuleRef row
Module ref
Its new rid
Adds an AssemblyRef row
Assembly ref
Its new rid
Adds an Assembly row
Assembly
The public key that should be used
Its new rid
Adds generic parameters
New token of owner
All generic params
Adds a generic param
New token of owner
Generic paramater
Adds generic parameter constraints
New rid of owner generic param
Its constraints
Adds a generic parameter constraint
New rid of owner generic param
Generic parameter constraint
Adds a InterfaceImpl row
New rid of owner
All interfaces
Adds a FieldLayout row
Owner field
Adds a FieldMarshal row
New owner token
Owner
Adds a FieldRVA row
The field
Adds a ImplMap row
New owner token
Owner
Adds a Constant row
New owner token
Owner
Adds a DeclSecurity row
New owner token
All DeclSecurity rows
Adds MethodSemantics rows
Event
Adds MethodSemantics rows
Property
Adds a ClassLayout row
Type
Adds a File row
File
Its new rid
Adds a ExportedType row
Exported type
Its new rid
Gets a #Blob offset of a type signature
Type sig
Extra data to append the signature if
is true.
#Blob offset
Gets a #Blob offset of a calling convention signature
Signature
#Blob offset
Adds a CustomAttribute row
Owner table
New owner rid
Onwer
Adds a CustomDebugInformation row
Owner table
New owner rid
Onwer
Writes the portable PDB to .
Output stream
Entry point token
Updated with the offset of the 20-byte PDB ID. The caller is responsible for initializing it with the PDB ID
Called before any other methods
Gets all s that should be saved in the meta data
Initializes TypeDef rids and creates raw rows, but does not initialize
any columns.
Allocates Field, Method, Property, Event, Param:
rid and raw row, but doesn't initialize the raw row.
Initializes TypeDef columns: FieldList, MethodList.
Initializes Method column: ParamList.
Initializes and .
Adds a . Its custom attributes are also added.
Type reference
Its new rid
Adds a . Its custom attributes are also added.
Type spec
Its new rid
Adds a . Its custom attributes are also added.
Member ref
Its new rid
Adds a . Its custom attributes are also added.
Stand alone sig
Its new rid
Adds a . Its custom attributes are also added.
Method spec
Its new rid
Called before sorting the CustomAttribute table. This is the last time anything
can be inserted into this table.
Called after everything has been initialized. The sub class can initialize more
rows if necessary or do nothing. After this method has been called, nothing else
can be added.
Should be called before all chunks get an RVA
Sorts the s
All s
A sorted list
All events
Creating the tables has just begun
Before allocating all TypeDef RIDs
Before allocating all MemberDef RIDs
The rids of types, fields, methods, events, properties and parameters are
now known.
The tables and rows of all types, fields, methods, events, properties and parameters
have been initialized. Method body RVAs are still not known, and no method has been
written yet.
Before sorting most tables
Most of the tables that should be sorted have been sorted. The CustomAttribute
table is still unsorted since it's not been created yet.
Custom attributes of all types, fields, methods, events, properties and parameters
have now been written.
All resources are about to be added to the .NET resources table
All resources have been added to the .NET resources table
All method bodies are about to be written
All method bodies have been written. Their RVAs are still not known.
All tables are now sorted, including the CustomAttribute table.
All tables have been created and all rows populated. The only columns that haven't
been initialized yet are the ones that are RVAs.
options
Default version string
Default header signature
MD header signature. Default value is
Major version. Default is 1. MS' CLR supports v0.x (x >= 19) and v1.1, nothing else.
Minor version. Default is 1.
Reserved and should be 0.
Version string. Default is . It's stored as a
zero-terminated UTF-8 string. Length should be <= 255 bytes.
Storage flags should be 0
Reserved and should be 0
Creates portable PDB v1.0 options
Meta data header. IMAGE_COR20_HEADER.Metadata points to this header.
Gets/sets the heaps
Default constructor
Constructor
Options
Method body chunk
Gets the code
Gets the extra sections (exception handlers) or null
Gets the token of the locals
true if it's a fat body
true if it's a tiny body
true if there's an extra section
Constructor
Code
Constructor
Code
Extra sections or null
Constructor
Code
Extra sections or null
Token of locals
Gets the approximate size of the method body (code + exception handlers)
Stores all method body chunks
Gets the number of bytes saved by re-using method bodies
Constructor
true if bodies can be shared
Adds a and returns the one that has been cached
The method body
The cached method body
Removes the specified method body from this chunk
The method body
if the method body is removed
Returns tokens of token types, strings and signatures
Gets the token of
A token type or a string or a signature
The token
Gets a StandAloneSig token
All locals
The original token or 0 if none
A StandAloneSig token or 0 if is
empty.
Writes CIL method bodies
Gets the code as a byte array. This is valid only after calling .
The size of this array is not necessarily a multiple of 4, even if there are exception
handlers present. See also
Gets the extra sections (exception handlers) as a byte array or null if there
are no exception handlers. This is valid only after calling
Gets the token of the locals
Constructor
Helps this instance
The CIL method body
Constructor
Helps this instance
The CIL method body
Keep the original max stack value that has been initialized
in
Writes the method body
Gets the code and (possible) exception handlers in one array. The exception handlers
are 4-byte aligned.
The code and any exception handlers
Base class of all CIL method body writers
true if there was at least one error
Constructor
All instructions
All exception handlers
Called when an error is detected (eg. a null pointer). The error can be
ignored but the method won't be valid.
Error message
Called when an error is detected (eg. a null pointer). The error can be
ignored but the method won't be valid.
Error message
Gets max stack value
Gets the offset of an instruction
The instruction
The offset or 0 if is null or not
present in the list of all instructions.
Initializes instruction offsets and returns the total code size
Size of code
Gets the size of an instruction
The instruction
Size of the instruction in bytes
Writes all instructions to at its current offset
The instruction writer
Number of bytes written
Gets the current offset in the instruction stream. This offset is relative to
the first written instruction.
The instruction writer
Current offset, relative to the first written instruction
Writes an instruction
The instruction writer
The instruction
Writes an instruction's opcode
The instruction writer
The instruction
Writes an instruction's operand
The instruction writer
The instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes an operand
Instruction writer
Instruction
Writes a operand
Instruction writer
Instruction
Writes a operand
Instruction writer
Instruction
Writes a operand
Instruction writer
Instruction
Writes a operand
Instruction writer
Instruction
options
Constructor
The module
Writes a .NET PE file. See also
Gets/sets the writer options. This is never null
Gets all s. The reloc section must be the last section, so use if you need to append a section
Adds to the sections list, but before the reloc section which must be last
New section to add to the list
Gets the .text section
Gets the .sdata section
Gets the .rsrc section or null if none
Gets the .reloc section
Gets the PE headers
Gets the IAT or null if there's none
Gets the .NET header
Gets the import directory or null if there's none
Gets the startup stub or null if there's none
Gets the reloc directory or null if there's none
Constructor
The module
Constructor
The module
Options or null
Module writer event args
Gets the writer ( or )
Gets the event
Constructor
Writer
Event
Module writer progress event args
Gets the writer ( or )
Gets the progress, 0.0 - 1.0
Constructor
Writer
Progress, 0.0 - 1.0
Content ID
Gets the GUID
Gets the timestamp
Constructor
Guid
Timestamp
Event handler
Event args type
Sender
Event args
PDB writer options
No bit is set
Don't use Microsoft.DiaSymReader.Native. This is a NuGet package with an updated Windows PDB reader/writer implementation,
and if it's available at runtime, dnlib will try to use it. If this option is set, dnlib won't use it.
You have to add a reference to the NuGet package if you want to use it, dnlib has no reference to the NuGet package.
This is only used if it's a Windows PDB file.
Don't use diasymreader.dll's PDB writer that is shipped with .NET Framework.
This is only used if it's a Windows PDB file.
Create a deterministic PDB file and add a debug directory entry to the PE file.
It's ignored if the PDB writer doesn't support it.
Hash the PDB file and add a PDB checksum debug directory entry to the PE file.
It's ignored if the PDB writer doesn't support it.
Common module writer options base class
Raised at various times when writing the file. The listener has a chance to modify
the file, eg. add extra metadata, encrypt methods, etc.
Raised when the progress is updated
Gets/sets the logger. If this is null, any errors result in a
being thrown. To disable this behavior, either
create your own logger or use .
Gets/sets the writer logger. If this is null, use
.
Gets/sets the options. This is never null.
Gets/sets the options. This is never null.
Gets/sets the options. This is never null.
If true, Win32 resources aren't written to the output
Gets/sets the Win32 resources. If this is null, use the module's
Win32 resources if any.
true to delay sign the assembly. Initialize to the
public key to use, and don't initialize . To generate the
public key from your strong name key file, execute sn -p mykey.snk mypublickey.snk
Gets/sets the strong name key. When you enhance strong name sign an assembly,
this instance's HashAlgorithm must be initialized to its public key's HashAlgorithm.
You should call
to initialize this property if you use normal strong name signing.
You should call
or
to initialize this property if you use enhanced strong name signing.
Gets/sets the new public key that should be used. If this is null, use
the public key generated from . If it is also null,
use the module's Assembly's public key.
You should call
or
to initialize this property if you use enhanced strong name signing.
true if method bodies can be shared (two or more method bodies can share the
same RVA), false if method bodies can't be shared. Don't enable it if there
must be a 1:1 relationship with method bodies and their RVAs.
This is enabled by default and results in smaller files.
true if the PE header CheckSum field should be updated, false if the
CheckSum field isn't updated.
true if it's a 64-bit module, false if it's a 32-bit or AnyCPU module.
Gets/sets the module kind
true if it should be written as an EXE file, false if it should be
written as a DLL file.
Set it to true to enable writing a PDB file. Default is false (a PDB file
won't be written to disk).
PDB writer options. This property is ignored if is false.
PDB file name. If it's null a PDB file with the same name as the output assembly
will be created but with a PDB extension. must be true or
this property is ignored.
PDB file name stored in the debug directory, or null to use
PDB stream. If this is initialized, then you should also set
to the name of the PDB file since the file name must be written to the PE debug directory.
must be true or this property is ignored.
Gets the PDB content id (portable PDBs). The argument is the PDB stream with the PDB ID zeroed out,
and the 2nd argument is the default timestamp.
This property is ignored if a deterministic PDB file is created or if the PDB checksum is calculated.
PDB checksum algorithm
true if an .mvid section should be added to the assembly. Not used by native module writer.
Constructor
The module
Initializes and
for normal strong name signing.
Module
Signature strong name key pair
Initializes and
for enhanced strong name signing (without key migration). See
http://msdn.microsoft.com/en-us/library/hh415055.aspx
Module
Signature strong name key pair
Signature public key
Initializes and
for enhanced strong name signing (with key migration). See
http://msdn.microsoft.com/en-us/library/hh415055.aspx
Module
Signature strong name key pair
Signature public key
Identity strong name key pair
Identity public key
Module writer base class
Default alignment of all constants
Default alignment of all method bodies
Default alignment of all .NET resources
Default alignment of the .NET metadata
Default Win32 resources alignment
Default strong name signature alignment
Default COR20 header alignment
See
See
See
See
See
See
Offset where the module is written. Usually 0.
Debug directory
Strong name signature
Returns the module writer options
Gets the destination stream
Gets the constants
Gets the method bodies
Gets the .NET resources
Gets the .NET metadata
Gets the Win32 resources or null if there's none
Gets the strong name signature or null if there's none
Gets all s. The reloc section must be the last section, so use if you need to append a section
Adds to the sections list, but before the reloc section which must be last
New section to add to the list
Gets the .text section
Gets the .rsrc section or null if there's none
Gets the debug directory or null if there's none
true if this is a , false if
this is a .
null if we're not writing a PDB
Writes the module to a file
File name. The file will be truncated if it exists.
Writes the module to a
Destination stream
Returns the module that is written
Writes the module to . Event listeners and
have been initialized when this method is called.
Number of bytes written
Creates the strong name signature if the module has one of the strong name flags
set or wants to sign the assembly.
Creates the .NET metadata chunks (constants, method bodies, .NET resources,
the metadata, and Win32 resources)
Gets the Win32 resources that should be written to the new image or null if none
Calculates and of all s
All chunks
Starting file offset
Starting RVA
File alignment
Section alignment
Writes all chunks to
The writer
All chunks
File offset of first chunk
File alignment
Strong name sign the assembly
Strong name signature offset
Creates the debug directory if a PDB file should be written
Write the PDB file. The caller should send the PDB events before and after calling this
method.
Gets the timestamp stored in the PE header
Raises a writer event
Event
Logs an error message
Format
Format args
Logs a warning message
Format
Format args
All / events
Writing has just begun
All PE sections have been created
All chunks have been created
All chunks have been added to their sections
Original event: .
Creating the metadata tables has just begun
Original event: .
Before allocating all TypeDef RIDs
Original event: .
Before allocating all MemberDef RIDs
Original event: .
The rids of types, fields, methods, events, properties and parameters are
now known.
Original event: .
The tables and rows of all types, fields, methods, events, properties and parameters
have been initialized. Method body RVAs are still not known, and no method has been
written yet.
Original event: .
Before sorting most tables
Original event: .
Most of the tables that should be sorted have been sorted. The CustomAttribute
table is still unsorted since it's not been created yet.
Original event: .
Custom attributes of all types, fields, methods, events, properties and parameters
have now been written.
Original event: .
All resources are about to be added to the .NET resources table
Original event: .
All resources have been added to the .NET resources table
Original event: .
All method bodies are about to be written
Original event: .
All method bodies have been written. Their RVAs are still not known.
Original event: .
All tables are now sorted, including the CustomAttribute table.
Original event: .
All tables have been created and all rows populated. The only columns that haven't
been initialized yet are the ones that are RVAs.
This event occurs before the PDB file is written. This event occurs even if no PDB file
will be written.
The PDB file has been written. This event occurs even if no PDB file has been written.
This event occurs just before all RVAs and file offsets of the chunks are calculated.
File offsets and RVAs of all chunks are now known. This includes method body and
field RVAs. Nothing has been written to the destination stream yet.
This event occurs before all chunks are written to the destination stream, and after
all RVAs and file offsets are known.
All chunks have been written to the destination stream.
This event occurs before the strong name signature is calculated. This event
occurs even if the assembly isn't strong name signed.
This event occurs after the strong name signature has been calculated. This event
occurs even if the assembly isn't strong name signed.
This event occurs before the checksum in the PE header is updated. This event
occurs even if the checksum isn't updated.
This event occurs after the checksum in the PE header has been updated. This event
occurs even if the checksum isn't updated.
Writing has ended
Thrown when the module writer encounters an unrecoverable error
Default constructor
Constructor
Error message
Constructor
Error message
Other exception
Constructor
options
If true, any extra data after the PE data in the original file is also saved
at the end of the new file. Enable this option if some protector has written data to
the end of the file and uses it at runtime.
If true, keep the original Win32 resources
Constructor
Module
true to optimize the image size so it's as small as possible.
Since the file can contain native methods and other native data, we re-use the
original file when writing the new file. If is true,
we'll try to re-use the old method body locations in the original file and
also try to fit the new metadata in the old metadata location.
A module writer that supports saving mixed-mode modules (modules with native code).
The original image will be re-used. See also
The original .NET module
All options
Any extra data found at the end of the original file. This is null if there's
no extra data or if is
false.
The original PE sections and their data
Original PE image
New sections we've added and their data
New .text section where we put some stuff, eg. .NET metadata
The new COR20 header
New .rsrc section where we put the new Win32 resources. This is null if there
are no Win32 resources or if
is true
Offset in of the PE checksum field.
Original PE section
PE section
PE section data
Constructor
PE section
Gets the module
Gets/sets the writer options. This is never null
Gets all s
Gets the original PE sections and their data
Gets the .text section
Gets the .rsrc section or null if there's none
Constructor
The module
Options or null
Gets the raw section data of the image. The sections are saved in
.
Creates the PE header "section"
Saves any data that is appended to the original PE file
true if image is 64-bit
Updates the PE header and COR20 header fields that need updating. All sections are
also updated, and the new ones are added.
Converts to a file offset in the destination stream
RVA
Gets the entry point
Updated with entry point (either a token or RVA of native method)
true if it's a managed entry point or there's no entry point,
false if it's a native entry point
.NET resources
Gets offset of next resource. This offset is relative to the start of
the .NET resources and is always aligned.
Constructor
Alignment of all resources
Adds a resource
The resource data
The resource data
Does not preserve metadata tokens
#Pdb heap
Gets the PDB ID. This is always 20 bytes in size.
Gets/sets the entry point token
Gets the offset of the 20-byte PDB ID
Gets/sets the referenced type system tables
Gets the type system table rows. This table has 64 elements.
Constructor
options
Default DLL characteristics
Default subsystem value
Default major linker version. Roslyn C# defaults to 0x30, and Roslyn VB defaults to 0x50.
Default minor linker version
IMAGE_FILE_HEADER.Machine value
IMAGE_FILE_HEADER.TimeDateStamp value
IMAGE_FILE_HEADER.PointerToSymbolTable value
IMAGE_FILE_HEADER.NumberOfSymbols value
IMAGE_FILE_HEADER.Characteristics value. bit
is ignored and set/cleared depending on whether it's a EXE or a DLL file.
IMAGE_OPTIONAL_HEADER.MajorLinkerVersion value
IMAGE_OPTIONAL_HEADER.MinorLinkerVersion value
IMAGE_OPTIONAL_HEADER.ImageBase value
IMAGE_OPTIONAL_HEADER.SectionAlignment value
IMAGE_OPTIONAL_HEADER.FileAlignment value
IMAGE_OPTIONAL_HEADER.MajorOperatingSystemVersion value
IMAGE_OPTIONAL_HEADER.MinorOperatingSystemVersion value
IMAGE_OPTIONAL_HEADER.MajorImageVersion value
IMAGE_OPTIONAL_HEADER.MinorImageVersion value
IMAGE_OPTIONAL_HEADER.MajorSubsystemVersion value
IMAGE_OPTIONAL_HEADER.MinorSubsystemVersion value
IMAGE_OPTIONAL_HEADER.Win32VersionValue value
IMAGE_OPTIONAL_HEADER.Subsystem value
IMAGE_OPTIONAL_HEADER.DllCharacteristics value
IMAGE_OPTIONAL_HEADER.SizeOfStackReserve value
IMAGE_OPTIONAL_HEADER.SizeOfStackCommit value
IMAGE_OPTIONAL_HEADER.SizeOfHeapReserve value
IMAGE_OPTIONAL_HEADER.SizeOfHeapCommit value
IMAGE_OPTIONAL_HEADER.LoaderFlags value
IMAGE_OPTIONAL_HEADER.NumberOfRvaAndSizes value
Creates a new time date stamp using current time
A new time date stamp
DOS and PE headers
Gets/sets the native entry point
Gets/sets the COR20 header
Gets/sets the IAT
Gets/sets the
Gets/sets the Win32 resources
Gets/sets the relocation directory
Gets/sets the debug directory
Gets the image base
Gets/sets a value indicating whether this is a EXE or a DLL file
Gets the section alignment
Gets the file alignment
Gets/sets the s
Default constructor
Constructor
Options
Calculates the PE checksum and writes it to the checksum field
Writer
Length of PE file
A PE section
Gets the name
Gets the Characteristics
true if this is a code section
true if this is an initialized data section
true if this is an uninitialized data section
Constructor
Section name
Section characteristics
Writes the section header to at its current position.
Returns aligned virtual size (aligned to )
Writer
File alignment
Section alignment
Current
Preserves metadata tokens
Its real rid
Its logical rid or real rid. If the ptr table exists (eg. MethodPtr), then it's
an index into it, else it's the real rid.
Gets total number of defs in the list. It does not necessarily return
the table size. Use for that.
Gets the number of rows that need to be created in the table
Returns true if the ptr table (eg. MethodPtr) is needed
Sorts the table
Comparer
Adds a def. must be called after adding the last def.
The def
Collection position
Must be called after 'ing the last def
Reserves rows in TypeRef, MemberRef, StandAloneSig,
TypeSpec and MethodSpec where we will store the original rows
to make sure they get the same rid. Any user created rows will be stored at
the end of each table.
Adds any non-referenced rows that haven't been added yet but are present in
the original file. If there are any non-referenced rows, it's usually a sign
that an obfuscator has encrypted one or more methods or that it has added
some rows it uses to decrypt something.
Re-uses all Field rows which aren't owned by any type due to the fields
having been deleted by the user. The reason we must do this is that the
FieldPtr and Field tables must be the same size.
Re-uses all Method rows which aren't owned by any type due to the methods
having been deleted by the user. The reason we must do this is that the
MethodPtr and Method tables must be the same size.
Re-uses all Param rows which aren't owned by any type due to the params
having been deleted by the user. The reason we must do this is that the
ParamPtr and Param tables must be the same size.
This method must be called after since
this method will create more methods at the end of the Method table.
Re-uses all Event rows which aren't owned by any type due to the events
having been deleted by the user. The reason we must do this is that the
EventPtr and Event tables must be the same size.
Re-uses all Property rows which aren't owned by any type due to the properties
having been deleted by the user. The reason we must do this is that the
PropertyPtr and Property tables must be the same size.
Creates a dummy TypeDef at the end of the TypeDef table that will own
dummy methods and fields. These dummy methods and fields are only created if the size
of the ptr table is less than the size of the non-ptr table (eg. size MethodPtr table
is less than size Method table). The only reason the ptr table would be smaller than
the non-ptr table is when some field/method has been deleted and we must preserve
all method/field rids.
Relocations directory
Constructor
Machine
Adds a relocation
RVA of location
Adds a relocation
Chunk or null. If it's null, is the RVA
Offset relative to the start of , or if is null, this is the RVA
Length of section
Section characteristics
Constructor
Length of section
Section characteristics
Calculates the optional header section sizes
Helps map s to tokens
Returns a TypeDefOrRef encoded token
A TypeDefOrRef type
Writes signatures
Write a signature
Helper
The type
The signature as a byte array
Write a signature
Helper
The signature
The signature as a byte array
Stores the instruction that jumps to _CorExeMain/_CorDllMain
Gets/sets the
Gets/sets the
Gets the address of the JMP instruction
Constructor
Reloc directory
Machine
Error logger
#Strings heap
Populates strings from an existing (eg. to preserve
string offsets)
The #Strings stream with the original content
Adds a string to the #Strings heap. The returned value is not necessarily an offset in
the #Strings heap. Call to get the offset.
The string
The offset id. This is not a #Strings offset. Call to get the #Strings offset
Gets the offset of a string in the #Strings heap. This method can only be called after
all strings have been added.
Offset id returned by
Adds a string to the #Strings heap, but does not re-use an existing position
The string
The offset of the string in the #Strings heap
Strong name signature chunk
Constructor
Size of strong name signature
options
Should be 0
Major version number. Default is 2. Valid versions are v1.0 (no generics),
v1.1 (generics are supported), or v2.0 (recommended).
Minor version number. Default is 0.
Force #- or #~ stream. Default value is null and recommended because the correct
tables stream will be used. true will force #- (Edit N' Continue)
stream, and false will force #~ (normal compressed) stream.
Extra data to write
true if there are deleted s, s,
s, s, s and/or
s.
Creates portable PDB v1.0 options
Contains all .NET tables
All tables
true if the Edit 'N Continue name will be used (#-)
true if any rows have been deleted (eg. a deleted TypeDef, Method, Field, etc.
Its name has been renamed to _Deleted).
true if #Strings heap size > 0xFFFF
true if #GUID heap size > 0xFFFF
true if #Blob heap size > 0xFFFF
Constructor
Metadata owner
Options
Calculates the length. This will set all MD tables to read-only.
Re-uses existing chunks to save space
Chunk type
Default constructor
Constructor
Compares the chunk type
Adds a if not already present
The chunk to add or null if none
Chunk alignment
The original input if it wasn't present, or the cached one
#US heap
Populates strings from an existing (eg. to preserve
string tokens)
The #US stream with the original content
Adds a string to the #US heap
The string
The offset of the string in the #US heap
Adds a string to the #US heap
The string
The offset of the string in the #US heap
Writes Win32 resources
Constructor
Win32 resources
Returns the and of a
. must have been called.
A
Updated with the file offset
Updated with the RVA
true if is valid and
and have been updated. false
if is not part of the Win32 resources.
Returns the of a .
must have been called.
A
The file offset or 0 if is invalid
Returns the of a .
must have been called.
A
The RVA or 0 if is invalid
Returns the and of a
. must have been called.
A
Updated with the file offset
Updated with the RVA
true if is valid and
and have been updated. false
if is not part of the Win32 resources.
Returns the of a .
must have been called.
A
The file offset or 0 if is invalid
Returns the of a .
must have been called.
A
The RVA or 0 if is invalid
Returns the and of a
. must have been called.
A
Updated with the file offset
Updated with the RVA
true if is valid and
and have been updated. false
if is not part of the Win32 resources.
Returns the of a .
must have been called.
A
The file offset or 0 if is invalid
Returns the of a .
must have been called.
A
The RVA or 0 if is invalid
Returns the and of a
's name. must have been
called.
The name of a
Updated with the file offset
Updated with the RVA
true if is valid and
and have been updated. false
if is not part of the Win32 resources.
Returns the of a 's name.
must have been called.
The name of a
The file offset or 0 if is invalid
Returns the of a 's name.
must have been called.
The name of a
The RVA or 0 if is invalid
A that reads from a byte array
The filename or null if the data is not from a file
Gets the total length of the data
Creates a instance
Data
The filename or null if the data is not from a file
Creates a data reader
Data
Creates a data reader
Offset of data
Length of data
This method doesn't need to be called since a has nothing that must be cleaned up
Thrown by a when it can't read data or if the caller tries to set an invalid offset
Reads data
Gets the start offset of the data
Gets the end offset of the data, not inclusive
Gets the total length of the data
Gets the current offset. This is between and (inclusive)
Gets/sets the position relative to
Gets the number of bytes that can be read without throwing an exception
Constructor
Stream
Start offset of data
Length of data
Resets the reader so it points to the start of the data
Creates a new reader that can access a smaller part of this reader
Start position relative to
Length of data
Creates a new reader that can access everything from to the end of the data
Start position relative to
Creates a new reader that can access a smaller part of this reader
Start position relative to
Length of data
Creates a new reader that can access everything from to the end of the data
Start position relative to
Checks if it's possible to read bytes
Length of data
Checks if it's possible to read bytes
Length of data
Reads a
Reads a
Reads a
Reads a
Reads a
Reads a
Reads a
Reads a
Reads a
Reads a
Reads a
Reads a
Reads a
Reads a
Reads a UTF-16 encoded
Number of characters to read
Reads bytes
Destination pointer
Number of bytes to read
Reads bytes
Destination array
Destination index
Number of bytes to read
Reads bytes
Number of bytes to read
Reads a compressed
Uncompressed
Reads a compressed
Reads a compressed
Uncompressed
Reads a compressed
Reads a 7-bit encoded integer
Reads a 7-bit encoded integer
Reads a serialized UTF-8 string
Reads a serialized string
Encoding
Returns all data without updating the current position
Returns the remaining data
Reads all bytes until a terminating byte or returns null if wasn't found.
If found, the current offset is incremented by the length of the returned data
Terminating byte value
Reads a zero-terminated UTF-8 string or returns null if the string couldn't be read.
If successful, the current offset is incremented past the terminating zero.
Reads a zero-terminated string or returns null if the string couldn't be read.
If successful, the current offset is incremented past the terminating zero.
Encoding
Reads a UTF-8 encoded string
Number of bytes to read (not characters)
Reads a string
Number of bytes to read (not characters)
Encoding
Creates a that can access this content. The caller doesn't have to dispose of the returned stream.
Copies the data, starting from , to
Destination
Number of bytes written
Copies the data, starting from , to
Destination
Temp buffer during writing
Number of bytes written
Copies the data, starting from , to
Destination
Number of bytes written
Copies the data, starting from , to
Destination
Temp buffer during writing
Number of bytes written
Copies the data, starting from , to
Destination
Number of bytes written
Copies the data, starting from , to
Destination
Temp buffer during writing
Number of bytes written
Creates s that can read its data.
This factory class is thread safe and its data can be read by on any thread.
The filename or null if the data is not from a file
Gets the total length of the data
Creates a data reader that can read all data
Creates a data reader
Offset of data
Length of data
Creates a data reader
Offset of data
Length of data
Creates a data reader
Offset of data
Length of data
Creates a data reader
Offset of data
Length of data
Creates a data reader
Stream
Offset of data
Length of data
Raised when all cached s created by this instance must be recreated
Disposes of this instance
This class is used by a . The instance
verifies that all input are valid before calling any methods in this class.
This class is thread safe.
Reads bytes
Offset of data
Destination pointer
Number of bytes to read
Reads bytes
Offset of data
Destination array
Destination index
Number of bytes to read
Reads a
Offset of data
Reads a
Offset of data
Reads a
Offset of data
Reads a
Offset of data
Reads a
Offset of data
Reads a
Offset of data
Reads a
Offset of data
Reads a UTF-16 encoded
Offset of data
Number of characters to read
Reads a string
Offset of data
Length of string in bytes
Encoding
Gets the data offset of a byte or returns false if the byte wasn't found
Offset of data
End offset of data (not inclusive)
Byte value to search for
Offset of the byte if found
Creates s
Creates a that reads from native memory
Pointer to data
Creates a that reads from a byte array
Data
Represents a file offset
Extension methods
Align up
this
Alignment
Align up
this
Alignment
Base class for classes needing to implement IFileSection
The start file offset of this section
Size of the section
Set to 's current position
The reader
Set according to 's current position
The reader
Represents a section in a file
Start offset of the section in the file
End offset of the section in the file. This is one byte after the last
valid offset in the section.
Creates s that read memory mapped data
The filename or null if the data is not from a file
Gets the total length of the data
Raised when all cached s created by this instance must be recreated
Creates a data reader
Offset of data
Length of data
Cleans up and frees all allocated memory
true if memory mapped I/O is enabled
Call this to disable memory mapped I/O. This must only be called if no other code is
trying to access the memory since that could lead to an exception.
Creates s that read native memory
The filename or null if the data is not from a file
Gets the total length of the data
Creates a instance
Pointer to data
Length of data
The filename or null if the data is not from a file
Creates a data reader
Offset of data
Length of data
This method doesn't need to be called since this instance doesn't own the native memory
IMAGE_FILE_HEADER.Characteristics flags
Relocation info stripped from file.
File is executable (i.e. no unresolved externel references).
Line nunbers stripped from file.
Local symbols stripped from file.
Agressively trim working set
App can handle >2gb addresses
Bytes of machine word are reversed.
32 bit word machine.
Debugging info stripped from file in .DBG file
If Image is on removable media, copy and run from the swap file.
If Image is on Net, copy and run from the swap file.
System File.
File is a DLL.
File should only be run on a UP machine
Bytes of machine word are reversed.
IMAGE_OPTIONAL_HEADER.DllCharacteristics
Image can handle a high entropy 64-bit virtual address space.
DLL can move.
Code Integrity Image
Image is NX compatible
Image understands isolation and doesn't want it
Image does not use SEH. No SE handler may reside in this image
Do not bind this image.
Image should execute in an AppContainer
Driver uses WDM model
Image supports Control Flow Guard.
Interface for PE optional header classes
Returns the Magic field
Returns the MajorLinkerVersion field
Returns the MinorLinkerVersion field
Returns the SizeOfCode field
Returns the SizeOfInitializedData field
Returns the SizeOfUninitializedData field
Returns the AddressOfEntryPoint field
Returns the BaseOfCode field
Returns the BaseOfData field
Returns the ImageBase field
Returns the SectionAlignment field
Returns the FileAlignment field
Returns the MajorOperatingSystemVersion field
Returns the MinorOperatingSystemVersion field
Returns the MajorImageVersion field
Returns the MinorImageVersion field
Returns the MajorSubsystemVersion field
Returns the MinorSubsystemVersion field
Returns the Win32VersionValue field
Returns the SizeOfImage field
Returns the SizeOfHeaders field
Returns the CheckSum field
Returns the Subsystem field
Returns the DllCharacteristics field
Returns the SizeOfStackReserve field
Returns the SizeOfStackCommit field
Returns the SizeOfHeapReserve field
Returns the SizeOfHeapCommit field
Returns the LoaderFlags field
Returns the NumberOfRvaAndSizes field
Returns the DataDirectories field. This array contains exactly 16 elements.
Represents the IMAGE_DATA_DIRECTORY PE section
Returns the IMAGE_DATA_DIRECTORY.VirtualAddress field
Returns the IMAGE_DATA_DIRECTORY.Size field
Default constructor
Constructor
PE file reader pointing to the start of this section
Verify section
Thrown if verification fails
A IMAGE_DEBUG_DIRECTORY
Gets the characteristics (reserved)
Gets the timestamp
Gets the major version
Gets the minor version
Gets the type
Gets the size of data
RVA of the data
File offset of the data
Constructor
PE file reader pointing to the start of this section
Verify section
Thrown if verification fails
Image debug type, see IMAGE_DEBUG_TYPE_* in winnt.n
Contains PDB info
It's a deterministic (reproducible) PE file
Embedded portable PDB data
Checksum of the PDB file. 0 or more entries allowed.
Represents the IMAGE_DOS_HEADER PE section
File offset of the NT headers
Constructor
PE file reader
Verify section
Thrown if verification fails
Represents the IMAGE_FILE_HEADER PE section
Returns the IMAGE_FILE_HEADER.Machine field
Returns the IMAGE_FILE_HEADER.NumberOfSections field
Returns the IMAGE_FILE_HEADER.TimeDateStamp field
Returns the IMAGE_FILE_HEADER.PointerToSymbolTable field
Returns the IMAGE_FILE_HEADER.NumberOfSymbols field
Returns the IMAGE_FILE_HEADER.SizeOfOptionalHeader field
Returns the IMAGE_FILE_HEADER.Characteristics field
Constructor
PE file reader pointing to the start of this section
Verify section
Thrown if verification fails
Represents the IMAGE_NT_HEADERS PE section
Returns the IMAGE_NT_HEADERS.Signature field
Returns the IMAGE_NT_HEADERS.FileHeader field
Returns the IMAGE_NT_HEADERS.OptionalHeader field
Constructor
PE file reader pointing to the start of this section
Verify section
Thrown if verification fails
Creates an IImageOptionalHeader
PE file reader pointing to the start of the optional header
Verify section
The created IImageOptionalHeader
Thrown if verification fails
Represents the IMAGE_OPTIONAL_HEADER (32-bit) PE section
Returns the IMAGE_OPTIONAL_HEADER.Magic field
Returns the IMAGE_OPTIONAL_HEADER.MajorLinkerVersion field
Returns the IMAGE_OPTIONAL_HEADER.MinorLinkerVersion field
Returns the IMAGE_OPTIONAL_HEADER.SizeOfCode field
Returns the IMAGE_OPTIONAL_HEADER.SizeOfInitializedData field
Returns the IMAGE_OPTIONAL_HEADER.SizeOfUninitializedData field
Returns the IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint field
Returns the IMAGE_OPTIONAL_HEADER.BaseOfCode field
Returns the IMAGE_OPTIONAL_HEADER.BaseOfData field
Returns the IMAGE_OPTIONAL_HEADER.ImageBase field
Returns the IMAGE_OPTIONAL_HEADER.SectionAlignment field
Returns the IMAGE_OPTIONAL_HEADER.FileAlignment field
Returns the IMAGE_OPTIONAL_HEADER.MajorOperatingSystemVersion field
Returns the IMAGE_OPTIONAL_HEADER.MinorOperatingSystemVersion field
Returns the IMAGE_OPTIONAL_HEADER.MajorImageVersion field
Returns the IMAGE_OPTIONAL_HEADER.MinorImageVersion field
Returns the IMAGE_OPTIONAL_HEADER.MajorSubsystemVersion field
Returns the IMAGE_OPTIONAL_HEADER.MinorSubsystemVersion field
Returns the IMAGE_OPTIONAL_HEADER.Win32VersionValue field
Returns the IMAGE_OPTIONAL_HEADER.SizeOfImage field
Returns the IMAGE_OPTIONAL_HEADER.SizeOfHeaders field
Returns the IMAGE_OPTIONAL_HEADER.CheckSum field
Returns the IMAGE_OPTIONAL_HEADER.Subsystem field
Returns the IMAGE_OPTIONAL_HEADER.DllCharacteristics field
Returns the IMAGE_OPTIONAL_HEADER.SizeOfStackReserve field
Returns the IMAGE_OPTIONAL_HEADER.SizeOfStackCommit field
Returns the IMAGE_OPTIONAL_HEADER.SizeOfHeapReserve field
Returns the IMAGE_OPTIONAL_HEADER.SizeOfHeapCommit field
Returns the IMAGE_OPTIONAL_HEADER.LoaderFlags field
Returns the IMAGE_OPTIONAL_HEADER.NumberOfRvaAndSizes field
Returns the IMAGE_OPTIONAL_HEADER.DataDirectories field
Constructor
PE file reader pointing to the start of this section
Total size of this optional header (from the file header)
Verify section
Thrown if verification fails
Represents the IMAGE_OPTIONAL_HEADER64 PE section
Returns the IMAGE_OPTIONAL_HEADER64.Magic field
Returns the IMAGE_OPTIONAL_HEADER64.MajorLinkerVersion field
Returns the IMAGE_OPTIONAL_HEADER64.MinorLinkerVersion field
Returns the IMAGE_OPTIONAL_HEADER64.SizeOfCode field
Returns the IMAGE_OPTIONAL_HEADER64.SizeOfInitializedData field
Returns the IMAGE_OPTIONAL_HEADER64.SizeOfUninitializedData field
Returns the IMAGE_OPTIONAL_HEADER64.AddressOfEntryPoint field
Returns the IMAGE_OPTIONAL_HEADER64.BaseOfCode field
Returns 0 since BaseOfData is not present in IMAGE_OPTIONAL_HEADER64
Returns the IMAGE_OPTIONAL_HEADER64.ImageBase field
Returns the IMAGE_OPTIONAL_HEADER64.SectionAlignment field
Returns the IMAGE_OPTIONAL_HEADER64.FileAlignment field
Returns the IMAGE_OPTIONAL_HEADER64.MajorOperatingSystemVersion field
Returns the IMAGE_OPTIONAL_HEADER64.MinorOperatingSystemVersion field
Returns the IMAGE_OPTIONAL_HEADER64.MajorImageVersion field
Returns the IMAGE_OPTIONAL_HEADER64.MinorImageVersion field
Returns the IMAGE_OPTIONAL_HEADER64.MajorSubsystemVersion field
Returns the IMAGE_OPTIONAL_HEADER64.MinorSubsystemVersion field
Returns the IMAGE_OPTIONAL_HEADER64.Win32VersionValue field
Returns the IMAGE_OPTIONAL_HEADER64.SizeOfImage field
Returns the IMAGE_OPTIONAL_HEADER64.SizeOfHeaders field
Returns the IMAGE_OPTIONAL_HEADER64.CheckSum field
Returns the IMAGE_OPTIONAL_HEADER64.Subsystem field
Returns the IMAGE_OPTIONAL_HEADER64.DllCharacteristics field
Returns the IMAGE_OPTIONAL_HEADER64.SizeOfStackReserve field
Returns the IMAGE_OPTIONAL_HEADER64.SizeOfStackCommit field
Returns the IMAGE_OPTIONAL_HEADER64.SizeOfHeapReserve field
Returns the IMAGE_OPTIONAL_HEADER64.SizeOfHeapCommit field
Returns the IMAGE_OPTIONAL_HEADER64.LoaderFlags field
Returns the IMAGE_OPTIONAL_HEADER64.NumberOfRvaAndSizes field
Returns the IMAGE_OPTIONAL_HEADER64.DataDirectories field
Constructor
PE file reader pointing to the start of this section
Total size of this optional header (from the file header)
Verify section
Thrown if verification fails
Represents the IMAGE_SECTION_HEADER PE section
Returns the human readable section name, ignoring everything after
the first nul byte
Returns the IMAGE_SECTION_HEADER.Name field
Returns the IMAGE_SECTION_HEADER.VirtualSize field
Returns the IMAGE_SECTION_HEADER.VirtualAddress field
Returns the IMAGE_SECTION_HEADER.SizeOfRawData field
Returns the IMAGE_SECTION_HEADER.PointerToRawData field
Returns the IMAGE_SECTION_HEADER.PointerToRelocations field
Returns the IMAGE_SECTION_HEADER.PointerToLinenumbers field
Returns the IMAGE_SECTION_HEADER.NumberOfRelocations field
Returns the IMAGE_SECTION_HEADER.NumberOfLinenumbers field
Returns the IMAGE_SECTION_HEADER.Characteristics field
Constructor
PE file reader pointing to the start of this section
Verify section
Thrown if verification fails
Converts s to/from s
Converts a to an
The file offset to convert
The RVA
Converts an to a
The RVA to convert
The file offset
Interface to access a PE image
true if image layout is the same as the raw PE image layout, false
if it's the same layout as a PE image loaded by the OS PE loader.
true if some of the memory where the image is located could be unavailable.
This could happen if it's been loaded by the OS loader.
The filename or null if the data is not from a file
Returns the DOS header
Returns the NT headers
Returns the section headers
Returns the debug directories
Gets/sets the Win32 resources. This is null if there are no Win32 resources.
Gets the factory
Creates a from to the end of the image
Offset of data
Creates a
Offset of data
Length of data
Creates a from to the end of the image
RVA of data
Creates a
RVA of data
Length of data
Creates a that can read the whole image
Interface to access a PE image
Call this to disable memory mapped I/O if it was used to open the file. This must only
be called if no other code is trying to access the memory since that could lead to an
exception.
true if memory mapped I/O is enabled
Extension methods
Finds a
this
Type
Name
Language ID
The or null if none found
Calculates a PE checksum
PE image stream positioned at the MZ bytes
Length of image
Offset of checksum
PE checksum
Align up
this
Alignment
Align up
this
Alignment
Converts a to/from an
Converts a to an
The PEInfo context
The file offset to convert
The RVA
Converts an to a
The PEInfo context
The RVA to convert
The file offset
IMAGE_FILE_HEADER.Machine enum
Unknown machine
x86
MIPS little-endian, 0x160 big-endian
MIPS little-endian
MIPS little-endian
MIPS little-endian WCE v2
Alpha_AXP
SH3 little-endian
SH3E little-endian
SH4 little-endian
SH5
ARM Little-Endian
ARM Thumb/Thumb-2 Little-Endian
ARM Thumb-2 Little-Endian
IBM PowerPC Little-Endian
IA-64
Infineon
EFI Byte Code
x64
M32R little-endian
Extensions
Checks if is a 64-bit machine
Machine
Checks if is , , etc...
Machine
Checks if is , , etc...
Machine
Checks if is , , etc...
Machine
Checks if is , , etc...
Machine
Image layout
Use this if the PE file has a normal structure (eg. it's been read from a file on disk)
Use this if the PE file has been loaded into memory by the OS PE file loader
Accesses a PE file
Constructor
Data reader factory
Image layout
Verify PE file data
Constructor
Name of the file
true if we should map it as an executable
Verify PE file data
Constructor
Name of the file
Verify PE file data
Constructor
Name of the file
Constructor
The PE file data
Filename or null
Image layout
Verify PE file data
Constructor
The PE file data
Image layout
Verify PE file data
Constructor
The PE file data
Verify PE file data
Constructor
The PE file data
Filename or null
Verify PE file data
Constructor
The PE file data
Constructor
The PE file data
Filename or null
Constructor
Address of PE image
Length of PE image
Image layout
Verify PE file data
Constructor
Address of PE image
Length of PE image
Verify PE file data
Constructor
Address of PE image
Length of PE image
Constructor
Address of PE image
Image layout
Verify PE file data
Constructor
Address of PE image
Verify PE file data
Constructor
Address of PE image
Reads all PE sections from a PE stream
Returns the DOS header
Returns the NT headers
Returns the section headers
Constructor
PE file reader pointing to the start of this section
Verify sections
Thrown if verification fails
Returns the first that has data at file offset
The file offset
Returns the first that has data at RVA
The RVA
Converts a to an
The file offset to convert
The RVA
Converts an to a
The RVA to convert
The file offset
Returns size of image rounded up to
It calculates the size itself, and does not return
Size of image in bytes
Represents an RVA (relative virtual address)
IMAGE_OPTIONAL_HEADER.Subsystem
Unknown subsystem.
Image doesn't require a subsystem.
Image runs in the Windows GUI subsystem.
Image runs in the Windows character subsystem.
image runs in the OS/2 character subsystem.
image runs in the Posix character subsystem.
image is a native Win9x driver.
Image runs in the Windows CE subsystem.
dnlib settings
true if dnlib is thread safe. (THREAD_SAFE was defined during compilation)
Cancellation token interface
Throws a if the operation should be canceled
Simple class using Monitor.Enter() and Monitor.Exit()
and just like ReaderWriterLockSlim it prevents recursive locks. It doesn't support
multiple readers. A reader lock is the same as a writer lock.
Creates a new instance of this class
Constructor
Enter read mode
Exit read mode
Enter write mode
Exit write mode
Interface to access a lazily initialized list
Type to store in list
Gets notified of list events
List value
Called before a new value is lazily added to the list.
If you must access this list, you can only call _NoLock() methods
since a write lock is now held by this thread.
Index where the value will be added
Value that will be added to the list. It can be modified by
the callee.
Called before a new value is added to the list.
If you must access this list, you can only call _NoLock() methods
since a write lock is now held by this thread.
Index where the value will be added
Value that will be added to the list
Called before a value is removed from the list. If all elements are removed,
is called, and this method is not called.
If you must access this list, you can only call _NoLock() methods
since a write lock is now held by this thread.
Index of value
The value that will be removed
Called after the list has been resized (eg. an element has been added/removed). It's not
called when an element is replaced.
If you must access this list, you can only call _NoLock() methods
since a write lock is now held by this thread.
Index where the change occurred.
Called before the whole list is cleared.
If you must access this list, you can only call _NoLock() methods
since a write lock is now held by this thread.
Implements a that is lazily initialized
Type to store in list
Stores a simple value
true if it has been initialized, false otherwise
Default constructor
Constructor that should be used when new elements are inserted into
User data
Gets the value
Index in the list
Sets the value
Index in the list
New value
Default constructor
Constructor
List listener
Enumerator
Gets the current value
Moves to the next element in the collection
Disposes the enumerator
Gets the list enumerator
Implements a that is lazily initialized
Type to store in list
Type of the context passed to the read-value delegate
Stores data and keeps track of the original index and whether the data has been
initialized or not.
Constructor that should only be called when is initialized.
Original index of this element
LazyList instance
Default constructor
Constructor
List listener
Constructor
Initial length of the list
Context passed to
Delegate instance that returns original values
Constructor
Initial length of the list
List listener
Context passed to
Delegate instance that returns original values
A readonly list that gets initialized lazily
Any class type
Gets the length of this list
Access the list
Index
The element or null if is invalid
Constructor
Length of the list
Delegate instance that lazily reads an element. It might
be called more than once for each rid in rare cases. It must never return
null.
A readonly list that gets initialized lazily
Any class type
Gets the length of this list
Access the list
Index
Generic parameter context
The element or null if is invalid
Constructor
Length of the list
Delegate instance that lazily reads an element. It might
be called more than once for each rid. It must never return null.
Lazily returns the original value if the user hasn't overwritten the value
Value type
Sets the lock that protects the data
Set a delegate instance that will return the original value
Gets/sets the value
The getter returns the original value if the value hasn't been initialized.
Returns true if the value has been initialized
Returns true if the value was set by the user
A resource blob
Gets the data reader
Gets/sets the code page
Gets/sets the reserved field
Constructor
Name
Constructor
Data reader factory
Offset of resource data
Length of resource data
Name
Constructor
Data reader factory
Offset of resource data
Length of resource data
Name
Code page
Reserved value
A Win32 resource directory (see IMAGE_RESOURCE_DIRECTORY in the Windows SDK)
See
See
See
See
See
See
Gets/sets the characteristics
Gets/sets the time date stamp
Gets/sets the major version number
Gets/sets the minor version number
Gets all directory entries
Gets all resource data
Constructor
Name
Finds a by name
Name
A or null if it wasn't found
Finds a by name
Name
A or null if it wasn't found
A Win32 resource directory created by the user
Constructor
Name
A Win32 resource directory created from a PE file
To make sure we don't get stuck in an infinite loop, don't allow more than this
many sub directories.
Owner
Directory depth. When creating more 's,
the instances get this value + 1
Info about all 's we haven't created yet
Info about all 's we haven't created yet
Offset of resource directory / data
Constructor
Starts from 0. If it's big enough, we'll stop reading more data.
Name
Resources
Reader positioned at the start of this resource directory
Reads the directory header and initializes and
.
Reads a string
Reader
Offset of string
The string or null if we could not read it
Base class of and
Gets/sets the name
Constructor
Name
A Win32 resource name. It can be either an integer or a string.
true if is valid
true if is valid
The ID. It's only valid if is true
The name. It's only valid if is true
Constructor
ID
Constructor
Name
Converts input to a
Converts input to a
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Overloaded operator
Win32 resources base class
Gets/sets the root directory
Finds a
Type
The or null if none found
Finds a
Type
Name
The or null if none found
Finds a
Type
Name
Language ID
The or null if none found
Dispose method
true if called by
Win32 resources class created by the user
Win32 resources class created from a PE file
Converts data RVAs to file offsets in
This reader only reads the raw data. The data RVA is found in the data header and
it's first converted to a file offset using . This file
offset is where we'll read from using this reader.
This reader only reads the directory entries and data headers. The data is read
by
Gets the resource reader
Constructor
/ converter
Reader for the whole Win32 resources section (usually
the .rsrc section). It's used to read 's and
's but not the actual data blob.
Offset of resource section
Length of resource section
true if this instance can dispose of
Data reader (it's used after converting an
to a )
Offset of resource section
Length of resource section
true if this instance can dispose of
Constructor
The PE image
Constructor
The PE image
Reader for the whole Win32 resources section (usually
the .rsrc section) or null if we should create one from the resource data
directory in the optional header
Offset of resource section
Length of resource section
true if this instance can dispose of
Creates a new data reader
RVA of data
Size of data