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