commit e5c826763656815a771598292d3ece77b0ad943c Author: i2p Date: Thu Aug 27 11:21:42 2026 -0600 initial commit diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..6565e37 Binary files /dev/null and b/.DS_Store differ diff --git a/DevexpressPatchKeygen.sln b/DevexpressPatchKeygen.sln new file mode 100644 index 0000000..3a2bbea --- /dev/null +++ b/DevexpressPatchKeygen.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35327.3 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevexpressPatchKeygen", "DevexpressPatchKeygen\DevexpressPatchKeygen.csproj", "{157708D0-FADD-45FF-AA11-A025550AC360}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {157708D0-FADD-45FF-AA11-A025550AC360}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {157708D0-FADD-45FF-AA11-A025550AC360}.Debug|Any CPU.Build.0 = Debug|Any CPU + {157708D0-FADD-45FF-AA11-A025550AC360}.Release|Any CPU.ActiveCfg = Release|Any CPU + {157708D0-FADD-45FF-AA11-A025550AC360}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CDB2555E-5DF2-454D-8337-42C05A9F7148} + EndGlobalSection +EndGlobal diff --git a/DevexpressPatchKeygen/.DS_Store b/DevexpressPatchKeygen/.DS_Store new file mode 100644 index 0000000..78d262c Binary files /dev/null and b/DevexpressPatchKeygen/.DS_Store differ diff --git a/DevexpressPatchKeygen/App.config b/DevexpressPatchKeygen/App.config new file mode 100644 index 0000000..8bf4c8a --- /dev/null +++ b/DevexpressPatchKeygen/App.config @@ -0,0 +1,21 @@ + + + + +
+ + + + + + + + + 24 + + + 1 + + + + \ No newline at end of file diff --git a/DevexpressPatchKeygen/Collection.cs b/DevexpressPatchKeygen/Collection.cs new file mode 100644 index 0000000..72f3580 --- /dev/null +++ b/DevexpressPatchKeygen/Collection.cs @@ -0,0 +1,30 @@ +using System; + +namespace DevexpressPatchKeygen +{ + // Define a delegate type (instead of deriving from MulticastDelegate) + public delegate void Collection(object sender, EventArgs e); + + // Use the delegate as intended in your code + public class ExampleClass + { + public Collection collectionDelegate; + + public ExampleClass() + { + // Example usage of Collection delegate + collectionDelegate = new Collection(HandleEvent); + } + + public void HandleEvent(object sender, EventArgs e) + { + Console.WriteLine("Event handled"); + } + + public void InvokeEvent() + { + // Use the delegate to invoke the event handler + collectionDelegate.Invoke(this, EventArgs.Empty); + } + } +} diff --git a/DevexpressPatchKeygen/DevexpressPatchKeygen.csproj b/DevexpressPatchKeygen/DevexpressPatchKeygen.csproj new file mode 100644 index 0000000..6a7341d --- /dev/null +++ b/DevexpressPatchKeygen/DevexpressPatchKeygen.csproj @@ -0,0 +1,99 @@ + + + + + Debug + AnyCPU + {157708D0-FADD-45FF-AA11-A025550AC360} + WinExe + DevexpressPatchKeygen + DevexpressPatchKeygen + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 5 + + + app.manifest + + + + ..\packages\dnlib.4.5.0\lib\net45\dnlib.dll + + + + + + + + + + + + + + + + + + + + + + + + Form + + + SchemaAdapter.cs + + + + + + + ResXFileCodeGenerator + SchemaAdapter.Designer.cs + Designer + + + True + SchemaAdapter.resx + True + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/DevexpressPatchKeygen/ExpressionParserWorker.cs b/DevexpressPatchKeygen/ExpressionParserWorker.cs new file mode 100644 index 0000000..60f8beb --- /dev/null +++ b/DevexpressPatchKeygen/ExpressionParserWorker.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace DevexpressPatchKeygen +{ + public class ExpressionParserWorker + { + public SchemaAdapter schemaAdapter; + public bool of; + public void DisableAuthentication() + { + // Enable/disable UI components based on the 'of' flag + schemaAdapter.m_Getter.Enabled = of; + schemaAdapter.m_Decorator.Enabled = of; + schemaAdapter.registry.Enabled = of; + schemaAdapter.annotation.Enabled = of; + schemaAdapter.initializer.Enabled = of; + schemaAdapter.attribute.Enabled = of; + schemaAdapter.m_Interceptor.Enabled = of; + schemaAdapter.exporter.Enabled = of; + schemaAdapter.listener.Enabled = of; + + // Update the text and color of the 'Patch' button + schemaAdapter._Descriptor.Text = (of ? "Patch" : "Stop"); + schemaAdapter._Descriptor.ForeColor = (of ? System.Drawing.Color.DarkBlue : System.Drawing.Color.Red); + + // Attach appropriate click event handler + schemaAdapter._Descriptor.Click -= (of ? new EventHandler(schemaAdapter.StartAuthentication) : new EventHandler(schemaAdapter.VisitAuthentication)); + schemaAdapter._Descriptor.Click += (of ? new EventHandler(schemaAdapter.VisitAuthentication) : new EventHandler(schemaAdapter.StartAuthentication)); + + // Show or hide the progress bar + schemaAdapter._Tokenizer.Visible = of; + schemaAdapter.order.Text = (!of ? "Calculation..." : ""); + schemaAdapter.order.Visible = !of; + schemaAdapter.@params.Value = 0; + schemaAdapter.@params.Style = ProgressBarStyle.Marquee; + schemaAdapter.@params.Visible = !of; + } + + // Additional methods could be added as per your requirements + } +} \ No newline at end of file diff --git a/DevexpressPatchKeygen/Interpreter.cs b/DevexpressPatchKeygen/Interpreter.cs new file mode 100644 index 0000000..7183f79 --- /dev/null +++ b/DevexpressPatchKeygen/Interpreter.cs @@ -0,0 +1,49 @@ +using System; +using System.Windows.Forms; + +namespace DevexpressPatchKeygen +{ + public class Interpreter + { + public string cvalue; + public SchemaAdapter schemaAdapter; + public string versione; + public string edition; + public bool nofil; + + // Constructor + public Interpreter() + { + } + + // Method to instantiate authentication + internal void InstantiateAuthentication() + { + this.cvalue = schemaAdapter.m_Interceptor.Items[schemaAdapter.m_Interceptor.SelectedIndex].ToString().Trim(); + } + + // Method to customize authentication + internal void CustomizeAuthentication() + { + schemaAdapter.@params.Style = ProgressBarStyle.Blocks; + } + + // Method to post authentication + internal void PostAuthentication() + { + schemaAdapter.@params.Value = 100; + } + + // Static method to define reader + internal static bool DefineReader() + { + return true; + } + + // Static method to get reader + internal static bool GetReader() + { + return false; + } + } +} diff --git a/DevexpressPatchKeygen/PolicyRepositoryService.cs b/DevexpressPatchKeygen/PolicyRepositoryService.cs new file mode 100644 index 0000000..f2d7cb2 --- /dev/null +++ b/DevexpressPatchKeygen/PolicyRepositoryService.cs @@ -0,0 +1,52 @@ +using System; +using System.Windows.Forms; + +namespace DevexpressPatchKeygen +{ + public class PolicyRepositoryService + { + public SchemaAdapter schemaAdapter; + public string fn; + + // Constructor + public PolicyRepositoryService() + { + } + + // Method to save authentication file + internal void ForgotAuthentication() + { + SaveFileDialog saveFileDialog = new SaveFileDialog + { + InitialDirectory = schemaAdapter._Parser, + Title = "Save the License for DevExtreme (Angular, React, Vue, jQuery)", + CheckFileExists = false, + CheckPathExists = true, + DefaultExt = "ts", + Filter = "TS File (*.ts)|*.ts", + FilterIndex = 1, + FileName = "devextreme-license.ts", + RestoreDirectory = true + }; + + if (saveFileDialog.ShowDialog() == DialogResult.OK) + { + this.fn = saveFileDialog.FileName; + return; + } + schemaAdapter.m_Process = false; + } + + // Static method to destroy the reader + internal static bool DestroyReader() + { + return true; + } + + // Static method to publish the reader + internal static bool PublishReader() + { + return false; + } + } +} diff --git a/DevexpressPatchKeygen/PrinterParserList.cs b/DevexpressPatchKeygen/PrinterParserList.cs new file mode 100644 index 0000000..b7d5723 --- /dev/null +++ b/DevexpressPatchKeygen/PrinterParserList.cs @@ -0,0 +1,63 @@ +using System; +using System.IO; +using System.Windows.Forms; + +namespace DevexpressPatchKeygen +{ + public class PrinterParserList + { + public string dVE; + public int nfl; + public Interpreter locals1; + + SchemaAdapter schemaAdapter; + + // Constructor + public PrinterParserList() + { + } + + // Method to handle asset authentication + internal void AssetAuthentication() + { + FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog + { + ShowNewFolderButton = false, + Description = "Select a \"Microsoft Visual Studio\" Installation Folder..." + }; + + if (folderBrowserDialog.ShowDialog() != DialogResult.OK) + { + this.locals1.nofil = true; + this.locals1.schemaAdapter.Invoke(new Collection(this.locals1.schemaAdapter.StartAuthentication), new object[2]); + return; + } + + this.dVE = folderBrowserDialog.SelectedPath + string.Format("\\{0}\\{1}\\Common7\\IDE\\Extensions\\", this.locals1.versione, this.locals1.edition); + if (!Directory.Exists(this.dVE)) + { + this.dVE = folderBrowserDialog.SelectedPath + "\\Common7\\IDE\\Extensions\\"; + } + + if (!Directory.Exists(this.dVE)) + { + this.locals1.nofil = true; + this.locals1.schemaAdapter.Invoke(new Collection(this.locals1.schemaAdapter.StartAuthentication), new object[2]); + MessageBox.Show("Sorry!. Microsoft Visual Studio Extensions not Found!", "Error...", MessageBoxButtons.OK, MessageBoxIcon.Hand); + return; + } + } + + // Static method to patch reader + internal static bool PatchReader() + { + return true; + } + + // Static method to initialize reader + internal static bool InitReader() + { + return false; + } + } +} diff --git a/DevexpressPatchKeygen/Program.cs b/DevexpressPatchKeygen/Program.cs new file mode 100644 index 0000000..8b1d365 --- /dev/null +++ b/DevexpressPatchKeygen/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace DevexpressPatchKeygen +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new SchemaAdapter()); + } + } +} diff --git a/DevexpressPatchKeygen/Properties/AssemblyInfo.cs b/DevexpressPatchKeygen/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1e99d60 --- /dev/null +++ b/DevexpressPatchKeygen/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DevexpressPatchKeygen")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DevexpressPatchKeygen")] +[assembly: AssemblyCopyright("Copyright © 2025")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("157708d0-fadd-45ff-aa11-a025550ac360")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/DevexpressPatchKeygen/Properties/SchemaAdapter.Designer.cs b/DevexpressPatchKeygen/Properties/SchemaAdapter.Designer.cs new file mode 100644 index 0000000..8af5a96 --- /dev/null +++ b/DevexpressPatchKeygen/Properties/SchemaAdapter.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace DevexpressPatchKeygen.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class SchemaAdapter { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal SchemaAdapter() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DevexpressPatchKeygen.Properties.SchemaAdapter", typeof(SchemaAdapter).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/DevexpressPatchKeygen/Properties/SchemaAdapter.resx b/DevexpressPatchKeygen/Properties/SchemaAdapter.resx new file mode 100644 index 0000000..ffecec8 --- /dev/null +++ b/DevexpressPatchKeygen/Properties/SchemaAdapter.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/DevexpressPatchKeygen/Properties/Settings.Designer.cs b/DevexpressPatchKeygen/Properties/Settings.Designer.cs new file mode 100644 index 0000000..64ad75a --- /dev/null +++ b/DevexpressPatchKeygen/Properties/Settings.Designer.cs @@ -0,0 +1,50 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace DevexpressPatchKeygen.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.11.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("24")] + public decimal dvma { + get { + return ((decimal)(this["dvma"])); + } + set { + this["dvma"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("1")] + public decimal dvmi { + get { + return ((decimal)(this["dvmi"])); + } + set { + this["dvmi"] = value; + } + } + } +} diff --git a/DevexpressPatchKeygen/Properties/Settings.cs b/DevexpressPatchKeygen/Properties/Settings.cs new file mode 100644 index 0000000..47d0741 --- /dev/null +++ b/DevexpressPatchKeygen/Properties/Settings.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Configuration; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace DevexpressPatchKeygen.Properties +{ + internal sealed partial class Settings : ApplicationSettingsBase + { + // Token: 0x0600005A RID: 90 RVA: 0x000022FC File Offset: 0x000004FC + [MethodImpl(MethodImplOptions.NoInlining)] + public Settings() + { + } + + // Token: 0x0600005B RID: 91 RVA: 0x00002304 File Offset: 0x00000504 + [MethodImpl(MethodImplOptions.NoInlining)] + private void SettingChangingEventHandler(object sender, SettingChangingEventArgs e) + { + } + + // Token: 0x0600005C RID: 92 RVA: 0x00002304 File Offset: 0x00000504 + [MethodImpl(MethodImplOptions.NoInlining)] + private void SettingsSavingEventHandler(object sender, CancelEventArgs e) + { + } + + // Token: 0x06000063 RID: 99 RVA: 0x00002248 File Offset: 0x00000448 + [MethodImpl(MethodImplOptions.NoInlining)] + internal static bool MoveReader() + { + return true; + } + + // Token: 0x06000064 RID: 100 RVA: 0x0000224B File Offset: 0x0000044B + [MethodImpl(MethodImplOptions.NoInlining)] + internal static bool CancelReader() + { + return false; + } + } +} \ No newline at end of file diff --git a/DevexpressPatchKeygen/Properties/Settings.settings b/DevexpressPatchKeygen/Properties/Settings.settings new file mode 100644 index 0000000..0504969 --- /dev/null +++ b/DevexpressPatchKeygen/Properties/Settings.settings @@ -0,0 +1,12 @@ + + + + + + 24 + + + 1 + + + \ No newline at end of file diff --git a/DevexpressPatchKeygen/RegAdapter.cs b/DevexpressPatchKeygen/RegAdapter.cs new file mode 100644 index 0000000..3c9993d --- /dev/null +++ b/DevexpressPatchKeygen/RegAdapter.cs @@ -0,0 +1,37 @@ +using System; + +namespace DevexpressPatchKeygen +{ + [Serializable] + public sealed class RegAdapter + { + // Constructor + public RegAdapter() + { + } + + // Method to collect authentication + internal char CollectAuthentication(string s) + { + return s[SchemaAdapter._Visitor.Next(s.Length)]; + } + + // Static method to collect reader + internal static bool CollectReader() + { + return true; + } + + // Static method to register reader + internal static bool RegisterReader() + { + return false; + } + + // Static instance of the RegAdapter + public static readonly RegAdapter Instance = new RegAdapter(); + + // Delegate for the method + public static Func DelegateForMethod; + } +} diff --git a/DevexpressPatchKeygen/RepositoryParserWorker.cs b/DevexpressPatchKeygen/RepositoryParserWorker.cs new file mode 100644 index 0000000..3b24f18 --- /dev/null +++ b/DevexpressPatchKeygen/RepositoryParserWorker.cs @@ -0,0 +1,40 @@ +using System.Collections.Generic; +using System.IO; +using System; + +public class RepositoryParserWorker +{ + // Define a delegate for the method + public Func> Selector; + + public string[] dr; + public int d; + + // Constructor + public RepositoryParserWorker() + { + // Initialize Selector with a valid method (if needed) + Selector = new Func>(WriteAuthentication); + } + + // A method that matches the delegate signature + public IEnumerable WriteAuthentication(string file) + { + return Directory.GetFiles(this.dr[this.d], file, SearchOption.AllDirectories); + } + + // Example of a method that uses the selector delegate + public void ProcessFiles() + { + string[] fileArray = new string[] { "filePattern1", "filePattern2" }; + foreach (var file in fileArray) + { + // Using the selector delegate to process files + var files = Selector(file); + foreach (var f in files) + { + Console.WriteLine(f); + } + } + } +} diff --git a/DevexpressPatchKeygen/SchemaAdapter.Designer.cs b/DevexpressPatchKeygen/SchemaAdapter.Designer.cs new file mode 100644 index 0000000..d3746b7 --- /dev/null +++ b/DevexpressPatchKeygen/SchemaAdapter.Designer.cs @@ -0,0 +1,40 @@ +namespace DevexpressPatchKeygen +{ + partial class SchemaAdapter + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Text = "Form1"; + } + + #endregion + } +} + diff --git a/DevexpressPatchKeygen/SchemaAdapter.cs b/DevexpressPatchKeygen/SchemaAdapter.cs new file mode 100644 index 0000000..c90414e --- /dev/null +++ b/DevexpressPatchKeygen/SchemaAdapter.cs @@ -0,0 +1,1110 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Security.Cryptography; +using System.Text; +using System.Threading; +using System.Windows.Forms; +using DevexpressPatchKeygen.Properties; +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using dnlib.DotNet.Writer; +using Microsoft.Win32; + +namespace DevexpressPatchKeygen +{ + public partial class SchemaAdapter : Form + { + public Func> Selector; + public Thread m_Authentication; + public int expression = 24; + public int repository = 1; + public string[] m_Task = new string[] + { + "2012 A.I.O.", + "2013 A.I.O.", + "2015 A.I.O.", + "2017 ENT.", + "2017 PRE.", + "2017 PRO.", + "2019 COM.", + "2019 ENT.", + "2019 PRE.", + "2019 PRO.", + "2022 COM.", + "2022 ENT.", + "2022 PRE.", + "2022 PRO." + }; + public string _Parser = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\"; + public string m_Property = Path.GetPathRoot(Environment.SystemDirectory); + public string[] _Error; + public List mapping = new List(); + public int m_Val; + public bool m_Process = true; + public string publisher = "yNuZy4wH5P3B8z6JizxE8jCOcVi56/1pUEogqmBKb/oHzZoDknOZNS2Eezg90LjJPxht3wCzqWaL4EnpLa2KQmJYRUyxb3HawCFlmBmGIq0gUuYs98j9qsD2HgxgzWT5tV0A5w==AQAB"; + public string instance = "uWen+I3q039Djs70jBiFJqHuqn02tPY5RCvxTccDoV7iks+8RNVIFKLejgILEHao9wt03cD60duR0kKZu0TbUK1nVlMxlijZseWMJonrfdYj+Xt37jl4OSuz17XM/WtZFMWM9Q==AQAB"; + public string _Proxy = "uWen+I3q039Djs70jBiFJqHuqn02tPY5RCvxTccDoV7iks+8RNVIFKLejgILEHao9wt03cD60duR0kKZu0TbUK1nVlMxlijZseWMJonrfdYj+Xt37jl4OSuz17XM/WtZFMWM9Q==AQAB

yX1YZkcaTah6AylJHfsc+H2rVLNlRmBfxnhL/oM8tq0oxHx7inLBK/74r52XEK1NiWc=

65BS/JKjKZb2KJzemmibE1++BkoVYrgsUFmqZTIj9ywuJfFlSSv/oTL3//6A/SlXUUM=Bq18zIb2vDQlNw2bOr8jyqh/kSMQ7DAtfGpoOlsnG/bJLxnhDkmXVVnx7AARDaBwvWk=vVRYfsxU+55r5qR+fdhJm769+kwc+CVS6JnIzGEKayVFShXE9JS6dxOCJGynu9I4bgU=Y4cNBnsbzJ4q/ktV5SklAUadZLaVxTiaeMAJAR3hYazfj3nmt3iXspieD9KJzkQPr+Q=N6hwemNQLXG0/DgQncX2ouRV24R/Wc/Y3Sg75ldqNZVgeyY1pIxKeTdzjDn8zFJy4sZgeL0iw+91lsHpFH5Mr8nwTdoU+/y+xipe2Kb5SipI7dlLSU5TC7Av0W/dJAx3OA1kuQ==
"; + public static Random _Visitor = new Random(); + public IDisposable _Importer; + public GroupBox m_Container; + public Label order; + public ProgressBar @params; + public ComboBox m_Interceptor; + public Label _Request; + public Button m_Getter; + public TextBox exporter; + public Label _Candidate; + public Button m_Decorator; + public Label _Facade; + public NumericUpDown attribute; + public NumericUpDown initializer; + public LinkLabel _Tokenizer; + public Button _Descriptor; + public CheckBox listener; + public LinkLabel _Helper; + public CheckBox registry; + public CheckBox annotation; + + // Constructor to initialize the authentication process + internal SchemaAdapter() + { + InitAuthentication(); + } + + // Initialize UI components (e.g., buttons, checkboxes, labels) + private void InitAuthentication() + { + this.m_Container = new GroupBox(); + this.registry = new CheckBox(); + this._Helper = new LinkLabel(); + this.order = new Label(); + this.@params = new ProgressBar(); + this.m_Interceptor = new ComboBox(); + this._Request = new Label(); + this.m_Getter = new Button(); + this.exporter = new TextBox(); + this._Candidate = new Label(); + this.m_Decorator = new Button(); + this._Facade = new Label(); + this.attribute = new NumericUpDown(); + this.initializer = new NumericUpDown(); + this._Tokenizer = new LinkLabel(); + this._Descriptor = new Button(); + this.listener = new CheckBox(); + this.annotation = new CheckBox(); + this.m_Container.SuspendLayout(); + ((ISupportInitialize)this.attribute).BeginInit(); + ((ISupportInitialize)this.initializer).BeginInit(); + base.SuspendLayout(); + this.m_Container.Controls.Add(this.registry); + this.m_Container.Controls.Add(this._Helper); + this.m_Container.Controls.Add(this.order); + this.m_Container.Controls.Add(this.@params); + this.m_Container.Controls.Add(this.m_Interceptor); + this.m_Container.Controls.Add(this._Request); + this.m_Container.Controls.Add(this.m_Getter); + this.m_Container.Controls.Add(this.exporter); + this.m_Container.Controls.Add(this._Candidate); + this.m_Container.Controls.Add(this.m_Decorator); + this.m_Container.Controls.Add(this._Facade); + this.m_Container.Controls.Add(this.attribute); + this.m_Container.Controls.Add(this.initializer); + this.m_Container.Controls.Add(this._Tokenizer); + this.m_Container.Controls.Add(this._Descriptor); + this.m_Container.Controls.Add(this.listener); + this.m_Container.Controls.Add(this.annotation); + this.m_Container.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold); + this.m_Container.ForeColor = Color.DarkMagenta; + this.m_Container.Location = new Point(6, 3); + this.m_Container.Name = "gDevExpress"; + this.m_Container.Size = new Size(383, 135); + this.m_Container.TabIndex = 44; + this.m_Container.TabStop = false; + this.m_Container.Text = "Patch / Keygen..."; + this.registry.AutoSize = true; + this.registry.Cursor = Cursors.Hand; + this.registry.ForeColor = Color.ForestGreen; + this.registry.Location = new Point(9, 47); + this.registry.Name = "cELK"; + this.registry.Size = new Size(135, 17); + this.registry.TabIndex = 106; + this.registry.Text = "Export License Key"; + this.registry.UseVisualStyleBackColor = true; + this._Helper.ActiveLinkColor = Color.Brown; + this._Helper.AutoSize = true; + this._Helper.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold | FontStyle.Italic, GraphicsUnit.Point, 0); + this._Helper.LinkColor = Color.Navy; + this._Helper.Location = new Point(9, 21); + this._Helper.Name = "linkDEV"; + this._Helper.Size = new Size(86, 13); + this._Helper.TabIndex = 105; + this._Helper.TabStop = true; + this._Helper.Text = "D.E. Version :"; + this._Helper.LinkClicked += this.CheckAuthentication; + this.order.AutoEllipsis = true; + this.order.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold | FontStyle.Italic, GraphicsUnit.Point, 0); + this.order.ForeColor = Color.Magenta; + this.order.Location = new Point(286, 93); + this.order.Name = "lpb"; + this.order.Size = new Size(88, 13); + this.order.TabIndex = 104; + this.order.Text = "Calculation..."; + this.order.TextAlign = ContentAlignment.MiddleCenter; + this.order.Visible = false; + this.@params.Location = new Point(286, 106); + this.@params.Name = "progressBar1"; + this.@params.Size = new Size(88, 18); + this.@params.Style = ProgressBarStyle.Marquee; + this.@params.TabIndex = 103; + this.@params.Visible = false; + this.m_Interceptor.BackColor = SystemColors.Info; + this.m_Interceptor.DropDownHeight = 100; + this.m_Interceptor.ForeColor = Color.DarkRed; + this.m_Interceptor.FormattingEnabled = true; + this.m_Interceptor.IntegralHeight = false; + this.m_Interceptor.ItemHeight = 13; + this.m_Interceptor.Location = new Point(286, 17); + this.m_Interceptor.Name = "comboLicense"; + this.m_Interceptor.Size = new Size(88, 21); + this.m_Interceptor.Sorted = true; + this.m_Interceptor.TabIndex = 101; + this.m_Interceptor.Text = "Select..."; + this.m_Interceptor.KeyPress += this.FindAuthentication; + this._Request.AutoSize = true; + this._Request.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold | FontStyle.Italic, GraphicsUnit.Point, 0); + this._Request.ForeColor = Color.Navy; + this._Request.Location = new Point(213, 21); + this._Request.Name = "label6"; + this._Request.Size = new Size(67, 13); + this._Request.TabIndex = 102; + this._Request.Text = "V.Studio : "; + this.m_Getter.ForeColor = Color.Firebrick; + this.m_Getter.Location = new Point(109, 69); + this.m_Getter.Name = "regLic"; + this.m_Getter.Size = new Size(165, 23); + this.m_Getter.TabIndex = 100; + this.m_Getter.Text = "Regenerate License Only"; + this.m_Getter.UseVisualStyleBackColor = true; + this.m_Getter.Click += this.CancelAuthentication; + this.exporter.BackColor = SystemColors.Info; + this.exporter.ForeColor = Color.DarkRed; + this.exporter.Location = new Point(146, 105); + this.exporter.MaxLength = 30; + this.exporter.Name = "tname"; + this.exporter.Size = new Size(112, 20); + this.exporter.TabIndex = 99; + this.exporter.Text = "PulsarTeam"; + this.exporter.TextAlign = HorizontalAlignment.Center; + this._Candidate.AutoSize = true; + this._Candidate.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold | FontStyle.Italic, GraphicsUnit.Point, 0); + this._Candidate.ForeColor = Color.Navy; + this._Candidate.Location = new Point(93, 109); + this._Candidate.Name = "label3"; + this._Candidate.Size = new Size(47, 13); + this._Candidate.TabIndex = 98; + this._Candidate.Text = "Name :"; + this.m_Decorator.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold, GraphicsUnit.Point, 0); + this.m_Decorator.ForeColor = Color.DarkGoldenrod; + this.m_Decorator.Location = new Point(9, 69); + this.m_Decorator.Name = "Restore"; + this.m_Decorator.Size = new Size(88, 23); + this.m_Decorator.TabIndex = 97; + this.m_Decorator.Text = "Restore"; + this.m_Decorator.UseVisualStyleBackColor = true; + this.m_Decorator.Click += this.ValidateAuthentication; + this._Facade.AutoSize = true; + this._Facade.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold | FontStyle.Italic, GraphicsUnit.Point, 0); + this._Facade.ForeColor = Color.Navy; + this._Facade.Location = new Point(145, 21); + this._Facade.Name = "label2"; + this._Facade.Size = new Size(11, 13); + this._Facade.TabIndex = 96; + this._Facade.Text = "."; + this.attribute.ForeColor = Color.DarkRed; + this.attribute.Location = new Point(98, 17); + NumericUpDown numericUpDown = this.attribute; + int[] array = new int[4]; + array[0] = 99; + numericUpDown.Maximum = new decimal(array); + NumericUpDown numericUpDown2 = this.attribute; + int[] array2 = new int[4]; + array2[0] = 19; + numericUpDown2.Minimum = new decimal(array2); + this.attribute.Name = "HV"; + this.attribute.Size = new Size(41, 20); + this.attribute.TabIndex = 95; + this.attribute.TextAlign = HorizontalAlignment.Center; + NumericUpDown numericUpDown3 = this.attribute; + int[] array3 = new int[4]; + array3[0] = 24; + numericUpDown3.Value = new decimal(array3); + this.attribute.ValueChanged += this.ConcatAuthentication; + this.initializer.ForeColor = Color.DarkRed; + this.initializer.Location = new Point(162, 17); + NumericUpDown numericUpDown4 = this.initializer; + int[] array4 = new int[4]; + array4[0] = 9; + numericUpDown4.Maximum = new decimal(array4); + this.initializer.Name = "LV"; + this.initializer.Size = new Size(41, 20); + this.initializer.TabIndex = 94; + this.initializer.TextAlign = HorizontalAlignment.Center; + NumericUpDown numericUpDown5 = this.initializer; + int[] array5 = new int[4]; + array5[0] = 1; + numericUpDown5.Value = new decimal(array5); + this.initializer.ValueChanged += this.ExcludeAuthentication; + this._Tokenizer.AutoSize = true; + this._Tokenizer.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Bold, GraphicsUnit.Point, 0); + this._Tokenizer.ForeColor = Color.BlueViolet; + this._Tokenizer.LinkColor = Color.OrangeRed; + this._Tokenizer.Location = new Point(297, 109); + this._Tokenizer.Name = "linkdfox"; + this._Tokenizer.Size = new Size(77, 13); + this._Tokenizer.TabIndex = 75; + this._Tokenizer.TabStop = true; + this._Tokenizer.Text = "By PulsarTeam"; + this._Tokenizer.LinkClicked += this.CalcAuthentication; + this._Descriptor.ForeColor = Color.DarkBlue; + this._Descriptor.Location = new Point(286, 69); + this._Descriptor.Name = "Patch"; + this._Descriptor.Size = new Size(88, 23); + this._Descriptor.TabIndex = 0; + this._Descriptor.Text = "Patch"; + this._Descriptor.UseVisualStyleBackColor = true; + this._Descriptor.Click += this.VisitAuthentication; + this.listener.AutoSize = true; + this.listener.Checked = true; + this.listener.CheckState = CheckState.Checked; + this.listener.Cursor = Cursors.Hand; + this.listener.ForeColor = Color.Teal; + this.listener.Location = new Point(9, 107); + this.listener.Name = "controlloBackup"; + this.listener.Size = new Size(69, 17); + this.listener.TabIndex = 21; + this.listener.Text = "Backup"; + this.listener.UseVisualStyleBackColor = true; + this.annotation.AutoSize = true; + this.annotation.Checked = true; + this.annotation.CheckState = CheckState.Checked; + this.annotation.Cursor = Cursors.Hand; + this.annotation.ForeColor = Color.ForestGreen; + this.annotation.Location = new Point(196, 47); + this.annotation.Name = "cRORE"; + this.annotation.Size = new Size(178, 17); + this.annotation.TabIndex = 107; + this.annotation.Text = "Remove Old Registry Entry"; + this.annotation.UseVisualStyleBackColor = true; + base.AutoScaleDimensions = new SizeF(6f, 13f); + base.AutoScaleMode = AutoScaleMode.Font; + base.ClientSize = new Size(395, 142); + base.Controls.Add(this.m_Container); + base.MaximizeBox = false; + this.MaximumSize = new Size(411, 181); + this.MinimumSize = new Size(411, 181); + base.Name = "DEPK"; + base.StartPosition = FormStartPosition.CenterScreen; + this.Text = "DevExpress - Patch/Keygen v{0}.{1}.{2}.{3}"; + base.Load += this.QueryAuthentication; + base.MouseDoubleClick += this.InvokeAuthentication; + this.m_Container.ResumeLayout(false); + this.m_Container.PerformLayout(); + ((ISupportInitialize)this.attribute).EndInit(); + ((ISupportInitialize)this.initializer).EndInit(); + base.ResumeLayout(false); + } + + // Method to query authentication status or details + private void QueryAuthentication(object sender, EventArgs e) + { + try + { + Version version = Assembly.GetExecutingAssembly().GetName().Version; + this.Text = string.Format("DevExpress - Patch/Keygen v{0}.{1}.{2}.{3}", new object[] + { + version.Major, + version.Minor, + version.Build, + version.Revision + }); + for (int i = 0; i <= this.m_Task.Length - 1; i++) + { + this.m_Interceptor.Items.Add(this.m_Task[i]); + } + string text = this.SetAuthentication(); + if (text != null && text != string.Empty) + { + this._Error = text.Split(new char[] + { + Path.AltDirectorySeparatorChar, + Path.DirectorySeparatorChar + }); + } + this.m_Interceptor.SelectedIndex = ((this._Error == null || this._Error.Length < 8) ? this.m_Interceptor.FindStringExact("2022 ENT.") : this.m_Interceptor.FindStringExact(this._Error[3] + " " + this._Error[4].Substring(0, 3).ToUpper() + ".")); + this.attribute.Value = Settings.Default.dvma; + this.initializer.Value = Settings.Default.dvmi; + } + catch + { + MessageBox.Show("General Error...!", "Info", MessageBoxButtons.OK, MessageBoxIcon.Hand); + } + } + + private string SortAuthentication() + { + return SchemaAdapter._Visitor.Next(1, int.MaxValue).ToString(); + } + + private string RemoveAuthentication(string string_0, int int_0 = 0) + { + return new string(Enumerable.Repeat(string_0, (int_0 == 0) ? SchemaAdapter._Visitor.Next(1, 11) : int_0) + .Select(s => RegAdapter.Instance.CollectAuthentication(s)) + .ToArray()); + } + + + // Method to set authentication details + private string SetAuthentication() + { + string result; + if (Environment.Is64BitOperatingSystem) + { + result = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\10.0\\", "InstallDir", null); + } + else + { + result = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0\\", "InstallDir", null); + } + return result; + } + + // Method to cancel authentication process + private void CancelAuthentication(object sender, EventArgs e) + { + m_Process = true; + bool flag = DestroyAuthentication(true); + if (m_Process) + { + MessageBox.Show((!flag) ? "License Registration Error..." : "License Inserted...", "Info...", MessageBoxButtons.OK, flag ? MessageBoxIcon.Asterisk : MessageBoxIcon.Hand); + } + } + + private void CalcAuthentication(object sender, LinkLabelLinkClickedEventArgs e) + { + Process.Start("https://www.dfox.it"); + } + + public void VisitAuthentication(object sender, EventArgs e) + { + try + { + if (this.m_Interceptor.SelectedIndex < 0) + { + MessageBox.Show("Select an Edition..!", "Info", MessageBoxButtons.OK, MessageBoxIcon.Hand); + } + else + { + this.m_Process = true; + this.CountAuthentication(false); + this.m_Authentication = new Thread(new ParameterizedThreadStart(this.PrepareAuthentication)); + this.m_Authentication.Start(true); + } + } + catch (ThreadAbortException) + { + } + catch + { + } + } + + private void PrepareAuthentication(object object_0) + { + Interpreter interpreter = new Interpreter(); + interpreter.schemaAdapter = this; + interpreter.nofil = true; + while (Process.GetProcessesByName("devenv").Length != 0) + { + if (MessageBox.Show("Close Visual Studio (\"devenv\") Before Proceeding!. Continue?", "Info", MessageBoxButtons.YesNo) == DialogResult.No) + { + interpreter.nofil = true; + base.Invoke(new Collection(this.StartAuthentication), new object[2]); + return; + } + } + interpreter.nofil = false; + int.TryParse(this.attribute.Value.ToString(), out this.expression); + int.TryParse(this.initializer.Value.ToString(), out this.repository); + Version version = new Version(this.expression, this.repository); + string text = string.Format("{0}.{1}", version.Major, version.Minor); + if ((bool)object_0) + { + this.DestroyAuthentication(false); + } + else + { + this.CallAuthentication(); + } + interpreter.cvalue = string.Empty; + base.Invoke(new MethodInvoker(interpreter.InstantiateAuthentication)); + string[] array = interpreter.cvalue.Split(new char[] + { + ' ' + }); + interpreter.versione = array[0]; + interpreter.edition = string.Empty; + string a = array[1]; + if (!(a == "COM.")) + { + if (!(a == "PRO.")) + { + if (!(a == "PRE.")) + { + if (!(a == "ENT.")) + { + interpreter.edition = ""; + } + else + { + interpreter.edition = "Enterprise"; + } + } + else + { + interpreter.edition = "Preview"; + } + } + else + { + interpreter.edition = "Professional"; + } + } + else + { + interpreter.edition = "Community"; + } + try + { + PrinterParserList printerParserList = new PrinterParserList(); + printerParserList.locals1 = interpreter; + this.m_Val = 0; + this.mapping = new List(); + + // Ensure that TestAuthentication() returns a string or modify the logic accordingly + string testAuth = !string.IsNullOrEmpty(this.TestAuthentication()) ? "some default value" : string.Empty; + string text2 = !string.IsNullOrEmpty(testAuth) ? testAuth.Replace("Components\\", "") : string.Format(this.m_Property + "Program Files{0}\\DevExpress {1}\\", + (!this.DefineAuthentication()) ? " (x86)" : "", text); + + if (!Directory.Exists(text2)) + { + text2 = !string.IsNullOrEmpty(testAuth) ? testAuth.Replace("Components\\", "") : string.Format(this.m_Property + "Program Files{0}\\DevExpress {1}\\", + this.DefineAuthentication() ? " (x86)" : "", text); + } + + if (!Directory.Exists(text2) && MessageBox.Show("Installation of DevExpress \"" + text + "\" not found...\nContinue?", "Info", MessageBoxButtons.YesNo) == DialogResult.No) + { + printerParserList.locals1.nofil = true; + base.Invoke(new Collection(this.StartAuthentication), new object[2]); + return; + } + printerParserList.dVE = string.Empty; + if (this._Error != null && this._Error.Length >= 8 && this._Error[3] == printerParserList.locals1.versione && this._Error[4].ToLower() == printerParserList.locals1.edition.ToLower()) + { + printerParserList.dVE = string.Join("\\", this._Error) + "Extensions\\"; + } + + else + { + printerParserList.dVE = string.Format(this.m_Property + "Program Files{0}\\Microsoft Visual Studio\\{1}\\{2}\\Common7\\IDE\\Extensions\\", (!this.DefineAuthentication() || !(printerParserList.locals1.versione != "2022")) ? "" : " (x86)", printerParserList.locals1.versione, printerParserList.locals1.edition); + } + if (!Directory.Exists(printerParserList.dVE)) + { + base.Invoke(new MethodInvoker(printerParserList.AssetAuthentication)); + } + string text3 = this.m_Property + "Windows\\Microsoft.NET\\assembly\\GAC_MSIL\\"; + string text4 = this.m_Property + "Windows\\assembly\\"; + string text5 = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Microsoft\\VisualStudio\\"; + string text6 = Environment.GetEnvironmentVariable("USERPROFILE") + "\\.nuget\\packages\\devexpress.data\\"; + this.ConnectAuthentication(new string[] + { + text2, + printerParserList.dVE, + text3, + text5, + text6, + text4 + }, (bool)object_0); + printerParserList.nfl = this.mapping.Count; + if (printerParserList.nfl <= 0) + { + printerParserList.locals1.nofil = true; + MessageBox.Show("\"DevExpress file to patch not found...", "Error...", MessageBoxButtons.OK, MessageBoxIcon.Hand); + base.Invoke(new Collection(this.StartAuthentication), new object[2]); + return; + } + base.Invoke(new MethodInvoker(printerParserList.locals1.CustomizeAuthentication)); + ServiceRepositoryService serviceRepositoryService = new ServiceRepositoryService(); + serviceRepositoryService.locals2 = printerParserList; + serviceRepositoryService.i = 0; + while (serviceRepositoryService.i < serviceRepositoryService.locals2.nfl) + { + base.Invoke(new MethodInvoker(serviceRepositoryService.ListAuthentication)); + if (File.Exists(this.mapping[serviceRepositoryService.i])) + { + this.LoginAuthentication(this.mapping[serviceRepositoryService.i], (bool)object_0); + } + int i = serviceRepositoryService.i; + serviceRepositoryService.i = i + 1; + } + base.Invoke(new MethodInvoker(printerParserList.locals1.PostAuthentication)); + MessageBox.Show(this.m_Val.ToString() + ") File" + ((this.m_Val > 1) ? "s" : "") + " Patched...\nEnjoy \"PulsaTeam\"", "Info...", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); + } + catch (IOException) + { + MessageBox.Show("Error on IO File...", "Error...", MessageBoxButtons.OK, MessageBoxIcon.Hand); + } + catch (UnauthorizedAccessException) + { + MessageBox.Show("Error on Unauthorized Access File...", "Error...", MessageBoxButtons.OK, MessageBoxIcon.Hand); + } + catch + { + if (!interpreter.nofil) + { + MessageBox.Show("Unknow Error on Access File...", "Error...", MessageBoxButtons.OK, MessageBoxIcon.Hand); + } + } + base.Invoke(new Collection(this.StartAuthentication), new object[2]); + } + + private void ConnectAuthentication(string[] string_0, bool bool_0) + { + RepositoryParserWorker repositoryParserWorker = new RepositoryParserWorker(); + repositoryParserWorker.dr = string_0; + try + { + repositoryParserWorker.d = 0; + while (repositoryParserWorker.d < repositoryParserWorker.dr.Length) + { + string[] array; + if (repositoryParserWorker.d < 5) + { + array = new string[] + { + "DevExpress.About.exe", + "DevExpress.Data.v*.dll", + "DevExpress.Xpf.Core.v*.DesignTools.dll", + "DevExpress.DemosUpdater.dll", + "DevExpress.ProjectUpgrade.Package*.dll", + "CodedUIExtension.Registrar.dll", + "DevExpressSharepoint*.wsp", + "DevExpress.DeploymentTool.UI.Async*.dll", + "DevExpress.Data.Portions.dll", + "DevExpress.CodeRush.Platform.dll", + "DevExpress.Generator.dll" + }; + } + else if (bool_0) + { + array = new string[] + { + "DevExpress.Data.v*.ni.dll", + "DevExpress.Xpf.Core.v*.DesignTools.ni.dll", + "DevExpress.DemosUpdater.ni.dll", + "DevExpress.ProjectUpgrade.Package*.ni.dll", + "CodedUIExtension.Registrar.ni.dll", + "DevExpress.DeploymentTool.UI.Async*.ni.dll", + "DevExpress.Data.Portions.ni.dll", + "DevExpress.CodeRush.Platform.ni.dll", + "DevExpress.Generator.ni.dll" + }; + } + else + { + array = new string[] + { + "DevExpress.Data.v*.ni.dll.DFX", + "DevExpress.Xpf.Core.v*.DesignTools.ni.dll.DFX", + "DevExpress.DemosUpdater.ni.dll.DFX", + "DevExpress.ProjectUpgrade.Package*.ni.dll.DFX", + "CodedUIExtension.Registrar.ni.dll.DFX", + "DevExpress.DeploymentTool.UI.Async*.ni.dll.DFX", + "DevExpress.Data.Portions.ni.dll.DFX", + "DevExpress.CodeRush.Platform.ni.dll.DFX", + "DevExpress.Generator.ni.dll.DFX" + }; + } + try + { + IEnumerable source = array; + Func> selector; + if ((selector = repositoryParserWorker.Selector) == null) + { + selector = (repositoryParserWorker.Selector = new Func>(repositoryParserWorker.WriteAuthentication)); + } + string[] array2 = source.SelectMany(selector).ToArray(); + for (int i = 0; i < array2.Length; i++) + { + if (!array2[i].Trim().EndsWith(".resources.dll")) + { + this.mapping.Add(array2[i].Trim()); + } + } + } + catch + { + } + int d = repositoryParserWorker.d; + repositoryParserWorker.d = d + 1; + } + } + catch + { + } + } + + private bool DefineAuthentication() + { + return Environment.Is64BitOperatingSystem; + } + + private bool CallAuthentication() + { + Guid guid = default(Guid); + int.TryParse(this.attribute.Value.ToString(), out this.expression); + int.TryParse(this.initializer.Value.ToString(), out this.repository); + Version version = new Version(this.expression, this.repository); + string name = string.Format("{0}{1}", version.Major, version.Minor); + bool result; + try + { + guid = new Guid(58230061U, 54679, 18994, 182, 217, 104, 10, 22, 163, 205, 166); + RegistryKey classesRoot = Registry.ClassesRoot; + string str = "Licenses\\"; + Guid guid2 = guid; + RegistryKey registryKey = classesRoot.CreateSubKey(str + guid2.ToString()); + if (!this.annotation.Checked) + { + registryKey.DeleteValue(name); + } + else + { + foreach (string name2 in registryKey.GetValueNames()) + { + registryKey.DeleteValue(name2); + } + } + guid = new Guid(1863287401, 5398, 17606, 189, 48, 14, 144, 190, 39, 135, 28); + RegistryKey classesRoot2 = Registry.ClassesRoot; + string str2 = "Licenses\\"; + guid2 = guid; + registryKey = classesRoot2.CreateSubKey(str2 + guid2.ToString()); + if (!this.annotation.Checked) + { + registryKey.DeleteValue(name); + } + else + { + foreach (string name3 in registryKey.GetValueNames()) + { + registryKey.DeleteValue(name3); + } + } + return true; + } + catch + { + result = false; + } + return result; + } + + private void FindAuthentication(object sender, KeyPressEventArgs e) + { + e.Handled = true; + } + private void CheckAuthentication(object sender, LinkLabelLinkClickedEventArgs e) + { + this.PopAuthentication(); + } + + private void LoginAuthentication(string string_0, bool bool_0) + { + bool flag; + if ((flag = string_0.EndsWith("DevExpress.Generator.dll")) && this.FillAuthentication(string_0)) + { + this.m_Val++; + } + if (string_0.EndsWith("DevExpress.Generator.dll.DFX")) + { + this.m_Val++; + if (File.Exists(string_0.Replace(".DFX", ""))) + { + File.Delete(string_0.Replace(".DFX", "")); + } + File.Copy(string_0, string_0.Replace(".DFX", "")); + return; + } + if (string_0.EndsWith(".ni.dll")) + { + this.m_Val++; + if (File.Exists(string_0 + ".DFX")) + { + File.Delete(string_0 + ".DFX"); + } + File.Move(string_0, string_0 + ".DFX"); + return; + } + if (string_0.EndsWith(".ni.dll.DFX")) + { + if (!File.Exists(string_0.Replace(".DFX", ""))) + { + this.m_Val++; + File.Copy(string_0, string_0.Replace(".DFX", "")); + } + return; + } + byte[] bytes = Encoding.Unicode.GetBytes(bool_0 ? this.publisher : this.instance); + byte[] bytes2 = Encoding.Unicode.GetBytes(bool_0 ? this.instance : this.publisher); + byte[] array = File.ReadAllBytes(string_0); + IList list = array.ComputeAuthentication(bytes); + if (list.Count <= 0) + { + bytes2 = Encoding.UTF8.GetBytes(bool_0 ? this.instance : this.publisher); + list = array.ComputeAuthentication(Encoding.UTF8.GetBytes(bool_0 ? this.publisher : this.instance)); + } + int num = 0; + for (int i = 0; i < list.Count; i++) + { + if (num == 0 && !flag) + { + this.m_Val++; + } + num++; + for (int j = 0; j < bytes2.Length; j++) + { + array[list[i] + j] = bytes2[j]; + } + } + if (num > 0) + { + if (bool_0 && this.listener.Checked && !flag) + { + this.ReadAuthentication(string_0); + } + File.WriteAllBytes(string_0, array); + } + } + //lol? + private bool FillAuthentication(string string_0) + { + bool result; + try + { + int num = 0; + ModuleDefMD moduleDefMD = ModuleDefMD.Load(File.ReadAllBytes(string_0), new ModuleContext()); + foreach (TypeDef typeDef in moduleDefMD.GetTypes()) + { + if (typeDef.FullName == "DevExpress.Generator") + { + MethodDef methodDef = typeDef.FindMethod("Execute"); + int num2 = methodDef.Body.Instructions.Count(); + if (methodDef != null && num2 >= 1 && methodDef.Body.Instructions[0].OpCode.ToString().Trim() != "ret") + { + methodDef.Body.Instructions.Insert(0, OpCodes.Ret.ToInstruction()); + num++; + } + } + } + if (num > 0) + { + if (this.listener.Checked) + { + this.ReadAuthentication(string_0); + } + if (moduleDefMD.IsILOnly) + { + ModuleWriterOptions moduleWriterOptions = new ModuleWriterOptions(moduleDefMD); + MetadataOptions metadataOptions = moduleWriterOptions.MetadataOptions; + + // Use the appropriate type for bitwise operations + metadataOptions.Flags = (metadataOptions.Flags | (MetadataFlags)32767 | (MetadataFlags)32768); + + // Make sure to use the correct Load overload + moduleDefMD.Write(string_0, moduleWriterOptions); + } + else + { + NativeModuleWriterOptions nativeModuleWriterOptions = new NativeModuleWriterOptions(moduleDefMD, false); + + // Use the appropriate type for bitwise operations + nativeModuleWriterOptions.MetadataOptions.Flags |= (MetadataFlags)32768; + + // Make sure to use the correct Load overload + moduleDefMD.NativeWrite(string_0, nativeModuleWriterOptions); + } + result = true; + } + else + { + result = false; + } + } + catch + { + result = false; + } + return result; + } + + private void ReadAuthentication(string string_0) + { + try + { + if (File.Exists(string_0 + ".DFX")) + { + File.Delete(string_0 + ".DFX"); + } + File.Copy(string_0, string_0 + ".DFX"); + } + catch + { + } + } + + + public void StartAuthentication(object sender, EventArgs e) + { + try + { + this.CountAuthentication(true); + if (this.m_Authentication != null && this.m_Authentication.IsAlive) + { + this.m_Authentication.Abort(); + this.m_Authentication = null; + } + } + catch + { + } + } + + private void ConcatAuthentication(object sender, EventArgs e) + { + Settings.Default.dvma = this.attribute.Value; + Settings.Default.Save(); + } + private void ExcludeAuthentication(object sender, EventArgs e) + { + Settings.Default.dvmi = this.initializer.Value; + Settings.Default.Save(); + } + + + private void CountAuthentication(bool bool_0) + { + ExpressionParserWorker expressionParserWorker = new ExpressionParserWorker(); + expressionParserWorker.schemaAdapter = this; + expressionParserWorker.of = bool_0; + try + { + base.Invoke(new MethodInvoker(expressionParserWorker.DisableAuthentication)); + } + catch + { + } + } + + // Test if authentication is successful + private string TestAuthentication() + { + string result; + try + { + int.TryParse(this.attribute.Value.ToString(), out this.expression); + int.TryParse(this.initializer.Value.ToString(), out this.repository); + Version version = new Version(this.expression, this.repository); + string str = string.Format("{0}.{1}", version.Major, version.Minor); + RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\\\WOW6432Node\\\\DevExpress\\\\Components\\v" + str); + if (registryKey != null) + { + string text = registryKey.GetValue("RootDirectory").ToString(); + registryKey.Close(); + result = (Directory.Exists(text) ? text : string.Empty); + } + else + { + result = string.Empty; + } + } + catch + { + result = string.Empty; + } + return result; + } + + private void InvokeAuthentication(object sender, MouseEventArgs e) + { + this.PopAuthentication(); + } + + private void PopAuthentication() + { + if (MessageBox.Show("Reset Settings to Default Values?\nThe application will be Restarted...", "Confirmation!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) + { + this.FlushAuthentication(); + } + } + + private void FlushAuthentication() + { + Settings.Default.Reset(); + try + { + Process.Start(Application.ExecutablePath); + Process.GetCurrentProcess().Kill(); + } + catch + { + Process.GetCurrentProcess().Kill(); + } + } + + private bool CloneAuthentication(string string_0, bool bool_0, string string_1) + { + if (bool_0 && this.TestAuthentication() == string.Empty && MessageBox.Show("Installation of DevExpress not found...\nContinue?", "Info", MessageBoxButtons.YesNo) == DialogResult.No) + { + this.m_Process = false; + return false; + } + bool result; + try + { + int.TryParse(this.attribute.Value.ToString(), out this.expression); + int.TryParse(this.initializer.Value.ToString(), out this.repository); + Version version = new Version(this.expression, this.repository); + string text = string.Format("{0}{1}", version.Major, version.Minor); + string s = string.Format("{0},{1},{1},{2},{3},{4},{5}", new object[] + { + text, + long.MaxValue, + string_0, + this.SortAuthentication(), + this.RemoveAuthentication("123456789", 1), + this.RemoveAuthentication("123456789", 0) + }); + byte[] bytes = Encoding.UTF8.GetBytes(s); + byte[] array = new byte[20 + bytes.Length]; + Buffer.BlockCopy(bytes, 0, array, 20, bytes.Length); + RSACryptoServiceProvider rsacryptoServiceProvider = new RSACryptoServiceProvider(); + rsacryptoServiceProvider.FromXmlString(this._Proxy); + string text2 = Convert.ToBase64String(rsacryptoServiceProvider.SignData(array, CryptoConfig.MapNameToOID("SHA1"))) + Convert.ToBase64String(array); + Guid guid = new Guid(58230061U, 54679, 18994, 182, 217, 104, 10, 22, 163, 205, 166); + Guid guid2 = new Guid(1863287401, 5398, 17606, 189, 48, 14, 144, 190, 39, 135, 28); + Guid guid4; + if (this.annotation.Checked) + { + for (int i = 0; i < 2; i++) + { + Guid guid3 = (i == 0) ? guid : guid2; + string str = "Licenses\\"; + guid4 = guid3; + string name = str + guid4.ToString(); + RegistryKey registryKey = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry64).OpenSubKey(name, true); + if (registryKey != null) + { + foreach (string name2 in registryKey.GetValueNames()) + { + registryKey.DeleteValue(name2); + } + } + } + } + if (this.registry.Checked) + { + try + { + File.WriteAllText(string_1, text2); + } + catch + { + } + } + RegistryKey classesRoot = Registry.ClassesRoot; + string str2 = "Licenses\\"; + guid4 = guid; + classesRoot.CreateSubKey(str2 + guid4.ToString()).SetValue(text, text2, RegistryValueKind.String); + RegistryKey classesRoot2 = Registry.ClassesRoot; + string str3 = "Licenses\\"; + guid4 = guid2; + RegistryKey registryKey2 = classesRoot2.CreateSubKey(str3 + guid4.ToString()); + registryKey2.SetValue(text, 1309, RegistryValueKind.DWord); + registryKey2.Close(); + result = true; + } + catch + { + result = false; + } + return result; + } + + // Destroy or clean up authentication data + private bool DestroyAuthentication(bool bool_0) + { + PolicyRepositoryService policyRepositoryService = new PolicyRepositoryService(); + policyRepositoryService.schemaAdapter = this; + bool result; + try + { + if (this.exporter.Text.Trim() == "" || this.exporter.Text.Trim().Length > 30) + { + this.exporter.Text = "PulsarTeam"; + } + policyRepositoryService.fn = string.Empty; + if (this.registry.Checked) + { + base.Invoke(new MethodInvoker(policyRepositoryService.ForgotAuthentication)); + if (!this.m_Process) + { + base.Invoke(new Collection(this.StartAuthentication), new object[2]); + return false; + } + } + result = this.CloneAuthentication(this.exporter.Text.Trim(), bool_0, policyRepositoryService.fn); + } + catch + { + result = false; + } + return result; + } + + // Validate authentication process + private void ValidateAuthentication(object sender, EventArgs e) + { + try + { + this.listener.Checked = false; + this.m_Process = true; + this.CountAuthentication(false); + this.m_Authentication = new Thread(new ParameterizedThreadStart(this.PrepareAuthentication)); + this.m_Authentication.Start(false); + } + catch (ThreadAbortException) + { + } + catch + { + } + } + } +} \ No newline at end of file diff --git a/DevexpressPatchKeygen/ServiceRepositoryService.cs b/DevexpressPatchKeygen/ServiceRepositoryService.cs new file mode 100644 index 0000000..14c5c19 --- /dev/null +++ b/DevexpressPatchKeygen/ServiceRepositoryService.cs @@ -0,0 +1,36 @@ +using System; +using System.Windows.Forms; + +namespace DevexpressPatchKeygen +{ + public class ServiceRepositoryService + { + public int i; + public PrinterParserList locals2; + SchemaAdapter schemaAdapter; + + // Constructor + public ServiceRepositoryService() + { + } + + // Method to list authentication + internal void ListAuthentication() + { + this.locals2.locals1.schemaAdapter.order.Text = string.Format("File : {0} of {1}", this.i + 1, this.locals2.nfl); + this.locals2.locals1.schemaAdapter.@params.Value = (100 * this.i + 1) / this.locals2.nfl; + } + + // Static method to handle new reader + internal static bool NewReader() + { + return true; + } + + // Static method to remove reader + internal static bool RemoveReader() + { + return false; + } + } +} diff --git a/DevexpressPatchKeygen/SingletonParserList.cs b/DevexpressPatchKeygen/SingletonParserList.cs new file mode 100644 index 0000000..9f48b69 --- /dev/null +++ b/DevexpressPatchKeygen/SingletonParserList.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; + +namespace DevexpressPatchKeygen +{ + internal static class SingletonParserList + { + // Method to compute authentication by comparing two byte arrays + [MethodImpl(MethodImplOptions.NoInlining)] + public static List ComputeAuthentication(this byte[] array1, byte[] array2) + { + List list = new List(); + + // Ensure both arrays are not null and have data + if (array1 == null || array1.Length == 0 || array2 == null || array2.Length == 0) + { + return list; + } + + // Iterate over the first byte array + for (int i = 0; i < array1.Length; i++) + { + bool match = true; + + // Iterate over the second byte array + for (int j = 0; j < array2.Length; j++) + { + // Compare byte by byte + if (i + j >= array1.Length || array1[i + j] != array2[j]) + { + match = false; + break; + } + } + + // If a match is found, add the starting index to the list + if (match) + { + list.Add(i); + } + } + return list; + } + } +} diff --git a/DevexpressPatchKeygen/app.manifest b/DevexpressPatchKeygen/app.manifest new file mode 100644 index 0000000..580f56a --- /dev/null +++ b/DevexpressPatchKeygen/app.manifest @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DevexpressPatchKeygen/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/DevexpressPatchKeygen/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs new file mode 100644 index 0000000..057ed7f --- /dev/null +++ b/DevexpressPatchKeygen/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] diff --git a/DevexpressPatchKeygen/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/DevexpressPatchKeygen/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..bf4e945 Binary files /dev/null and b/DevexpressPatchKeygen/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/DevexpressPatchKeygen/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/DevexpressPatchKeygen/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..a59848d Binary files /dev/null and b/DevexpressPatchKeygen/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/DevexpressPatchKeygen/obj/Debug/Devexpre.DA9836B2.Up2Date b/DevexpressPatchKeygen/obj/Debug/Devexpre.DA9836B2.Up2Date new file mode 100644 index 0000000..e69de29 diff --git a/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.Properties.SchemaAdapter.resources b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.Properties.SchemaAdapter.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.Properties.SchemaAdapter.resources differ diff --git a/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.csproj.AssemblyReference.cache b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.csproj.AssemblyReference.cache new file mode 100644 index 0000000..6ca57c0 Binary files /dev/null and b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.csproj.AssemblyReference.cache differ diff --git a/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.csproj.CoreCompileInputs.cache b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..3888b99 --- /dev/null +++ b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +278bd7a3a374e85d8c6405d7e5d89f29ca57851e52edccd95c02da6a6e8c399d diff --git a/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.csproj.FileListAbsolute.txt b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..98678f4 --- /dev/null +++ b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.csproj.FileListAbsolute.txt @@ -0,0 +1,12 @@ +C:\Users\oline\source\repos\DevexpressPatchKeygen\DevexpressPatchKeygen\obj\Debug\DevexpressPatchKeygen.csproj.AssemblyReference.cache +C:\Users\oline\source\repos\DevexpressPatchKeygen\DevexpressPatchKeygen\obj\Debug\DevexpressPatchKeygen.csproj.GenerateResource.cache +C:\Users\oline\source\repos\DevexpressPatchKeygen\DevexpressPatchKeygen\obj\Debug\DevexpressPatchKeygen.csproj.CoreCompileInputs.cache +C:\Users\oline\source\repos\DevexpressPatchKeygen\DevexpressPatchKeygen\bin\Debug\DevexpressPatchKeygen.exe.config +C:\Users\oline\source\repos\DevexpressPatchKeygen\DevexpressPatchKeygen\bin\Debug\DevexpressPatchKeygen.exe +C:\Users\oline\source\repos\DevexpressPatchKeygen\DevexpressPatchKeygen\bin\Debug\DevexpressPatchKeygen.pdb +C:\Users\oline\source\repos\DevexpressPatchKeygen\DevexpressPatchKeygen\obj\Debug\DevexpressPatchKeygen.exe +C:\Users\oline\source\repos\DevexpressPatchKeygen\DevexpressPatchKeygen\obj\Debug\DevexpressPatchKeygen.pdb +C:\Users\oline\source\repos\DevexpressPatchKeygen\DevexpressPatchKeygen\bin\Debug\dnlib.dll +C:\Users\oline\source\repos\DevexpressPatchKeygen\DevexpressPatchKeygen\bin\Debug\dnlib.xml +C:\Users\oline\source\repos\DevexpressPatchKeygen\DevexpressPatchKeygen\obj\Debug\Devexpre.DA9836B2.Up2Date +C:\Users\oline\source\repos\DevexpressPatchKeygen\DevexpressPatchKeygen\obj\Debug\DevexpressPatchKeygen.Properties.SchemaAdapter.resources diff --git a/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.csproj.GenerateResource.cache b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.csproj.GenerateResource.cache new file mode 100644 index 0000000..e65f6ff Binary files /dev/null and b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.csproj.GenerateResource.cache differ diff --git a/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.exe b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.exe new file mode 100755 index 0000000..a9355d7 Binary files /dev/null and b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.exe differ diff --git a/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.pdb b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.pdb new file mode 100644 index 0000000..4048dda Binary files /dev/null and b/DevexpressPatchKeygen/obj/Debug/DevexpressPatchKeygen.pdb differ diff --git a/DevexpressPatchKeygen/obj/Debug/TempPE/Properties.SchemaAdapter.Designer.cs.dll b/DevexpressPatchKeygen/obj/Debug/TempPE/Properties.SchemaAdapter.Designer.cs.dll new file mode 100644 index 0000000..9d503dc Binary files /dev/null and b/DevexpressPatchKeygen/obj/Debug/TempPE/Properties.SchemaAdapter.Designer.cs.dll differ diff --git a/DevexpressPatchKeygen/obj/Release/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/DevexpressPatchKeygen/obj/Release/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs new file mode 100644 index 0000000..057ed7f --- /dev/null +++ b/DevexpressPatchKeygen/obj/Release/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] diff --git a/DevexpressPatchKeygen/obj/Release/DesignTimeResolveAssemblyReferences.cache b/DevexpressPatchKeygen/obj/Release/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..e6dc122 Binary files /dev/null and b/DevexpressPatchKeygen/obj/Release/DesignTimeResolveAssemblyReferences.cache differ diff --git a/DevexpressPatchKeygen/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/DevexpressPatchKeygen/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..e48788f Binary files /dev/null and b/DevexpressPatchKeygen/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/DevexpressPatchKeygen/obj/Release/DevexpressPatchKeygen.csproj.AssemblyReference.cache b/DevexpressPatchKeygen/obj/Release/DevexpressPatchKeygen.csproj.AssemblyReference.cache new file mode 100644 index 0000000..6ca57c0 Binary files /dev/null and b/DevexpressPatchKeygen/obj/Release/DevexpressPatchKeygen.csproj.AssemblyReference.cache differ diff --git a/DevexpressPatchKeygen/obj/Release/DevexpressPatchKeygen.csproj.FileListAbsolute.txt b/DevexpressPatchKeygen/obj/Release/DevexpressPatchKeygen.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..e69de29 diff --git a/DevexpressPatchKeygen/obj/Release/TempPE/Properties.Resource1.Designer.cs.dll b/DevexpressPatchKeygen/obj/Release/TempPE/Properties.Resource1.Designer.cs.dll new file mode 100644 index 0000000..18e40df Binary files /dev/null and b/DevexpressPatchKeygen/obj/Release/TempPE/Properties.Resource1.Designer.cs.dll differ diff --git a/DevexpressPatchKeygen/obj/Release/TempPE/Properties.SchemaAdapter.Designer.cs.dll b/DevexpressPatchKeygen/obj/Release/TempPE/Properties.SchemaAdapter.Designer.cs.dll new file mode 100644 index 0000000..d41980e Binary files /dev/null and b/DevexpressPatchKeygen/obj/Release/TempPE/Properties.SchemaAdapter.Designer.cs.dll differ diff --git a/DevexpressPatchKeygen/obj/Release/TempPE/SchemaAdapter1.Designer.cs.dll b/DevexpressPatchKeygen/obj/Release/TempPE/SchemaAdapter1.Designer.cs.dll new file mode 100644 index 0000000..4b35b44 Binary files /dev/null and b/DevexpressPatchKeygen/obj/Release/TempPE/SchemaAdapter1.Designer.cs.dll differ diff --git a/DevexpressPatchKeygen/packages.config b/DevexpressPatchKeygen/packages.config new file mode 100644 index 0000000..ef8b111 --- /dev/null +++ b/DevexpressPatchKeygen/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/packages/dnlib.4.5.0/.signature.p7s b/packages/dnlib.4.5.0/.signature.p7s new file mode 100644 index 0000000..a59e3fc Binary files /dev/null and b/packages/dnlib.4.5.0/.signature.p7s differ diff --git a/packages/dnlib.4.5.0/LICENSE.txt b/packages/dnlib.4.5.0/LICENSE.txt new file mode 100644 index 0000000..0ab6432 --- /dev/null +++ b/packages/dnlib.4.5.0/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright (C) 2012-2019 de4dot@gmail.com + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/dnlib.4.5.0/dnlib.4.5.0.nupkg b/packages/dnlib.4.5.0/dnlib.4.5.0.nupkg new file mode 100644 index 0000000..8d8df82 Binary files /dev/null and b/packages/dnlib.4.5.0/dnlib.4.5.0.nupkg differ diff --git a/packages/dnlib.4.5.0/lib/net35/dnlib.dll b/packages/dnlib.4.5.0/lib/net35/dnlib.dll new file mode 100644 index 0000000..717236f Binary files /dev/null and b/packages/dnlib.4.5.0/lib/net35/dnlib.dll differ diff --git a/packages/dnlib.4.5.0/lib/net35/dnlib.xml b/packages/dnlib.4.5.0/lib/net35/dnlib.xml new file mode 100644 index 0000000..125426c --- /dev/null +++ b/packages/dnlib.4.5.0/lib/net35/dnlib.xml @@ -0,0 +1,39493 @@ + + + + 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) + + + Processor Architecture: ARM64 (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 resolve in order 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 Framework 3.5 assembly can be + redirected to a .NET Framework 4.0 assembly if the source module is a .NET Framework 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + Unmanaged calling convention encoded as modopts + + + 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 + + + + + Gets the 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 Framework 1.x XML string or null if it's not a .NET Framework 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 Framework 2.0+) DeclSecurity blob format + + + + + + Reads the old (.NET Framework 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 + + + + + Determines whether a is experimental + + The code + true if the is experimental; otherwise, false + + + + Converts a to an + + The code + A or null if it's invalid + + + + Converts a to an , using a module context to look + up potential experimental opcodes + + The code + The module context + 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 + + + + + Checks if it's a `catch` handler + + + + + Checks if it's a `filter` handler + + + + + Checks if it's a `finally` handler + + + + + Checks if it's a `fault` handler + + + + + 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 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 + The module 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 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 + The module 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 + + + + 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 + The module 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 + + + + 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 + Module 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 module context + + + + Constructor + + The reader + + + + Constructor + + The reader + Method parameters or null if they're not known yet + + + + Constructor + + The reader + Method parameters or null if they're not known yet + The module context + + + + 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. + + + + + Constructs an experimental opcode. + + + + + 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 + + + + Returns the full assembly name of a + + The IAssembly + true to use public key token in name even if a public key is available + String builder to use or null + The full assembly name + + + + Returns the full assembly name of a + + The IAssembly + true to use public key token in name even if a public key is available + String builder to use or null + The full assembly name + + + + + + + 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 + + + + + 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 + + + type argument can be ByRefLike + + + + 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. + + + + + + + + Use already existing s whenever possible + + + + + 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. is non-generic type or generic type without generic arguments. + 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 . + + The type + The imported type or null if is invalid + + + + Imports a as a . 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) + + + + 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) + Force all columns to 4 bytes instead of 2 or 4 bytes + + + + 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 + + + + + + + + + + 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 Framework 1.0) + + + + + MS CLR 1.0 version string (.NET Framework 1.0). This is an incorrect version that shouldn't be used. + + + + + MS CLR 1.0 version string (.NET Framework 1.0). This is an incorrect version that shouldn't be used. + + + + + MS CLR 1.0 version string (.NET Framework 1.0). This is an incorrect version that shouldn't be used. + + + + + MS CLR 1.1 version string (.NET Framework 1.1) + + + + + MS CLR 2.0 version string (.NET Framework 2.0-3.5) + + + + + MS CLR 4.0 version string (.NET Framework 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 + + + + Finds all LocalVariable rids owned by + + Owner LocalScope rid + A instance containing the valid LocalVariable rids + + + + Finds all LocalConstant rids owned by + + Owner LocalScope rid + A instance containing the valid LocalConstant 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) + + + + Initializes MD tables + + Type system table rows (from #Pdb stream) + Force all columns to 4 bytes instead of 2 or 4 bytes + + + + + + + + + + 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 + + + + Get the declaring type's name + + 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 + + + + Registers an experimental CIL opcode. It must be a 2-byte opcode + where the first byte lies within the range 0xF0..0xFB. + + + + + Clears an experimental CIL opcode. + + + + + Attempts to get an experimental CIL opcode. + + + + + 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 , , ... + + + + + true if is s390x, , ... + + + + + 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 Framework 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 Framework 1.0/1.1 use version 1.0 (0x0100) and + .NET Framework 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 Framework 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 + + + + Compilation metadata references + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + Gets all references + + + + + Constructor + + + + + Compilation metadata reference flags, see https://github.com/dotnet/roslyn/blob/master/docs/features/pdb-compilation-options.md + + + + + No bit is set + + + + + Set if it's an assembly reference, clear if it's a module reference + + + + + EmbedInteropTypes was enabled + + + + + A compilation metadata reference + + + + + Name of the reference (eg. filename) + + + + + Aliases (or an empty string), separated with commas + + + + + Gets the flags + + + + + Gets the timestamp stored in the PE header + + + + + Gets SizeOfImage stored in the PE header + + + + + Gets the MVID stored in the .NET metadata + + + + + Constructor + + + + + Constructor + + Name of reference + Aliases (or an empty string), separated with commas + Reference flags + Timestamp in PE header + SizeOfImage in PE header + MVID stored in the .NET metadata + + + + Compilation options + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + Gets all compilation options, see https://github.com/dotnet/roslyn/blob/master/docs/features/pdb-compilation-options.md . + Option names (key): see roslyn/src/Compilers/Core/Portable/PEWriter/CompilationOptionNames.cs + + + + + Constructor + + + + + Links a TypeDef with no method IL with a PDB document. + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + List of documents associated with the type + + + + + + + Initializes + + + + Contains the EnC state machine state mapping + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + State machine states + + + + + Constructor + + + + + State machine state information used by debuggers + + + + + Syntax offset + + + + + State machine state + + + + + Constructor + + Syntax offset + State machine state + + + + State machine state + from Roslyn: StateMachineState.cs + + + + + First state of an async iterator state machine that is used to resume the machine after yield return. + Initial state is not used to resume state machine that yielded. State numbers decrease as the iterator makes progress. + + + + + Initial iterator state of an async iterator. + Distinct from so that DisposeAsync can throw in latter case. + + + + + First state of an iterator state machine. State numbers decrease for subsequent finalize states. + + + + + The last state of a state machine. + + + + + State machine not started or is running + + + + + First unused state + + + + + First state in async state machine that is used to resume the machine after await. + State numbers increase as the async computation makes progress. + + + + + Initial iterator state of an iterator. + + + + + First state in iterator state machine that is used to resume the machine after yield return. + Initial state is not used to resume state machine that yielded. State numbers increase as the iterator makes progress. + + + + + Primary constructor information blob + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + Gets the data blob + + + + + Constructor + + + + + Constructor + + Source server file contents + + + + 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 + + + + + Gets the Metadata token of the document if available. + + + + + 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 + + + + + Gets the Metadata token of the document if available. + + + + + 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 type, but + not a generic type definition, i.e., a TypeSpec. + + The 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 field/method/event/property + Field/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 + + + + + + + + Gets all custom attributes + + + + + + + Initializes + + + + + + + + + + Gets all custom debug infos + + + + + + + Initializes + + + + + + + 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 + + + + + + + + The module where this instance is located + + + + + + + + + + + + + A reference to a resource in another assembly + + + + + + + + Gets/sets the assembly reference + + + + + Constructor + + Name of resource + Assembly reference + Resource flags + + + + + + The module where this instance is located + + + + + + + + + + + + + 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 + + + + + + The module where this instance is located + + + + + + + + + + + + + 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 + + + + Extension of for writing resource set elements + + + + + Format version of the resource set + + + + + Specifies the target reader type of the resource set + + + + + Writes a 7-bit encoded integer. + + The value to write + + + + 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 + Format of the serialized data + Type of serialized data + + + + + Creates serialized data + + Serialized data + + + + + Creates a user type for a built-in resource type code. + Useful when writing V1 resources. + + The built-in resource type code or null if not supported + + + + + 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 + + + + + The ResourceReader type name used by this set + + + + + The ResourceSet type name used by this set + + + + + The type of resource reader used to read this set + + + + + Format version of the resource set + + + + + Creates a new instance + + The ResourceReader type name to use + The ResourceSet type name to use + + + + + Gets the number of elements in the set + + + + + Gets all resource elements + + + + + Adds a new resource to the set, overwriting any existing resource + + + + + + Creates a new instance for a DeserializingResourceReader + + Version of System.Resources.Extensions assembly to use + Resource format version, the default is 2 + + + + Creates a new instance for a ResourceReader + + Module in which the set will reside + /// Resource format version, the default is 2 + + + + Creates a new instance for a ResourceReader + + mscorlib assembly version + Resource format version, the default is 2 + + + + Creates a new instance based on this instance + + + + + + 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 + Format of the 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. + + + + + Reads a .NET resource + + User type resource data factory + Data of resource + Call back that gets called to create a instance. Can be null. + + + + + Resource reader type + + + + + System.Resources.ResourceReader + + + + + System.Resources.Extensions.DeserializingResourceReader + + + + + Type of resource + + + + + null + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + array + + + + + + + + + + Start of user types + + + + + Writes .NET resources + + + + + Write .NET resources + + Owner module + Output stream + .NET resources + + + + Write .NET resources + + Owner module + User type factory + 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 + + + + + Gets the serialization format of + + + + + Constructor + + User resource type + Raw serialized data + + + + + + + + + + + Specifies how the data in should be deserialized. + + + + + The data can be deserialized using . + + + + + The data can be deserialized by passing in the raw data into + the method. + + + + + The data can be deserialized by passing the UTF-8 string obtained from the raw data into + the method. + + + + + The data can be deserialized by creating a new instance of the type using a + constructor with a single parameter and passing in + a of the raw data into it. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 Framework 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 Framework 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 + + + + + When comparing MemberDefs in same module, use regular reference comparison instead + comparing the signature, name, and other properties. + + + + + 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 + Root declaring type to check if we should + treat as a generic instance type + 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 + Root declaring type to check if we should + treat as a generic instance type + 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 + Root declaring type to check if we should + treat as a generic instance type + 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 + + true if a TypeSpec is allowed if the next type is a class/value-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 Framework 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 + true if equal sign '=' 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 + + + + + + + + + + + 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 + + + + Rounds up the provided number to the next power of 2 + + The number to round + + + + 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 + + + + + + + + + + + + + Helper class to project WinMD types to CLR types + + + + + 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. + The alignment of the data + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + 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. + + The instance of + Error message + Optional message arguments + + + + #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 + + + + Calculates the requires alignment of this chunk. + Returns 0 for default/no alignment. + + Required alignment + + + + 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 + + + + 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 + Optional message arguments + + + + 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 + + + + + DEPRECATED: + 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 hasn't 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 method + + + + Constructor + + Helps this instance + The method + Keep the original max stack value that has been initialized + in + + + + 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 hasn't 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. + + + + + All columns that can be 2 or 4 bytes are forced to be 4 bytes. + Set this to true if you add a #JTD heap and (if CLR) a #- tables heap is used + or (if Mono/Unity) a #~ or #- tables heap is used. + dnlib won't try to auto detect this from your added heaps since the CLR/CoreCLR vs Mono/Unity behavior + is a little bit different. You may need to set to true if you target CLR/CoreCLR. + + + + + Extra data to write + + + + + Log2Rid 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 1-byte-long + + Offset of data + + + + + Reads a + + Offset of data + + + + + Reads a + + Offset of data + + + + + Reads a 2-byte-long + + 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 + + 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 , returns 0 if out of range + + The file offset to convert + The RVA + + + + Converts an to a , returns 0 if out of range + + 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 , returns 0 if out of range + + The PEInfo context + The file offset to convert + The RVA + + + + Converts an to a , returns 0 if out of range + + 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 + + + + + Checks if is s390x, , 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, for more information see https://docs.microsoft.com/en-us/windows/win32/debug/pe-format + + + + + 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 , returns 0 if out of range + + The file offset to convert + The RVA + + + + Converts an to a , returns 0 if out of range + + 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 + + + + + + + diff --git a/packages/dnlib.4.5.0/lib/net45/dnlib.dll b/packages/dnlib.4.5.0/lib/net45/dnlib.dll new file mode 100644 index 0000000..15912a6 Binary files /dev/null and b/packages/dnlib.4.5.0/lib/net45/dnlib.dll differ diff --git a/packages/dnlib.4.5.0/lib/net45/dnlib.xml b/packages/dnlib.4.5.0/lib/net45/dnlib.xml new file mode 100644 index 0000000..125426c --- /dev/null +++ b/packages/dnlib.4.5.0/lib/net45/dnlib.xml @@ -0,0 +1,39493 @@ + + + + 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) + + + Processor Architecture: ARM64 (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 resolve in order 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 Framework 3.5 assembly can be + redirected to a .NET Framework 4.0 assembly if the source module is a .NET Framework 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + Unmanaged calling convention encoded as modopts + + + 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 + + + + + Gets the 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 Framework 1.x XML string or null if it's not a .NET Framework 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 Framework 2.0+) DeclSecurity blob format + + + + + + Reads the old (.NET Framework 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 + + + + + Determines whether a is experimental + + The code + true if the is experimental; otherwise, false + + + + Converts a to an + + The code + A or null if it's invalid + + + + Converts a to an , using a module context to look + up potential experimental opcodes + + The code + The module context + 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 + + + + + Checks if it's a `catch` handler + + + + + Checks if it's a `filter` handler + + + + + Checks if it's a `finally` handler + + + + + Checks if it's a `fault` handler + + + + + 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 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 + The module 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 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 + The module 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 + + + + 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 + The module 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 + + + + 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 + Module 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 module context + + + + Constructor + + The reader + + + + Constructor + + The reader + Method parameters or null if they're not known yet + + + + Constructor + + The reader + Method parameters or null if they're not known yet + The module context + + + + 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. + + + + + Constructs an experimental opcode. + + + + + 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 + + + + Returns the full assembly name of a + + The IAssembly + true to use public key token in name even if a public key is available + String builder to use or null + The full assembly name + + + + Returns the full assembly name of a + + The IAssembly + true to use public key token in name even if a public key is available + String builder to use or null + The full assembly name + + + + + + + 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 + + + + + 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 + + + type argument can be ByRefLike + + + + 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. + + + + + + + + Use already existing s whenever possible + + + + + 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. is non-generic type or generic type without generic arguments. + 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 . + + The type + The imported type or null if is invalid + + + + Imports a as a . 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) + + + + 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) + Force all columns to 4 bytes instead of 2 or 4 bytes + + + + 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 + + + + + + + + + + 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 Framework 1.0) + + + + + MS CLR 1.0 version string (.NET Framework 1.0). This is an incorrect version that shouldn't be used. + + + + + MS CLR 1.0 version string (.NET Framework 1.0). This is an incorrect version that shouldn't be used. + + + + + MS CLR 1.0 version string (.NET Framework 1.0). This is an incorrect version that shouldn't be used. + + + + + MS CLR 1.1 version string (.NET Framework 1.1) + + + + + MS CLR 2.0 version string (.NET Framework 2.0-3.5) + + + + + MS CLR 4.0 version string (.NET Framework 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 + + + + Finds all LocalVariable rids owned by + + Owner LocalScope rid + A instance containing the valid LocalVariable rids + + + + Finds all LocalConstant rids owned by + + Owner LocalScope rid + A instance containing the valid LocalConstant 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) + + + + Initializes MD tables + + Type system table rows (from #Pdb stream) + Force all columns to 4 bytes instead of 2 or 4 bytes + + + + + + + + + + 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 + + + + Get the declaring type's name + + 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 + + + + Registers an experimental CIL opcode. It must be a 2-byte opcode + where the first byte lies within the range 0xF0..0xFB. + + + + + Clears an experimental CIL opcode. + + + + + Attempts to get an experimental CIL opcode. + + + + + 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 , , ... + + + + + true if is s390x, , ... + + + + + 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 Framework 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 Framework 1.0/1.1 use version 1.0 (0x0100) and + .NET Framework 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 Framework 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 + + + + Compilation metadata references + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + Gets all references + + + + + Constructor + + + + + Compilation metadata reference flags, see https://github.com/dotnet/roslyn/blob/master/docs/features/pdb-compilation-options.md + + + + + No bit is set + + + + + Set if it's an assembly reference, clear if it's a module reference + + + + + EmbedInteropTypes was enabled + + + + + A compilation metadata reference + + + + + Name of the reference (eg. filename) + + + + + Aliases (or an empty string), separated with commas + + + + + Gets the flags + + + + + Gets the timestamp stored in the PE header + + + + + Gets SizeOfImage stored in the PE header + + + + + Gets the MVID stored in the .NET metadata + + + + + Constructor + + + + + Constructor + + Name of reference + Aliases (or an empty string), separated with commas + Reference flags + Timestamp in PE header + SizeOfImage in PE header + MVID stored in the .NET metadata + + + + Compilation options + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + Gets all compilation options, see https://github.com/dotnet/roslyn/blob/master/docs/features/pdb-compilation-options.md . + Option names (key): see roslyn/src/Compilers/Core/Portable/PEWriter/CompilationOptionNames.cs + + + + + Constructor + + + + + Links a TypeDef with no method IL with a PDB document. + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + List of documents associated with the type + + + + + + + Initializes + + + + Contains the EnC state machine state mapping + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + State machine states + + + + + Constructor + + + + + State machine state information used by debuggers + + + + + Syntax offset + + + + + State machine state + + + + + Constructor + + Syntax offset + State machine state + + + + State machine state + from Roslyn: StateMachineState.cs + + + + + First state of an async iterator state machine that is used to resume the machine after yield return. + Initial state is not used to resume state machine that yielded. State numbers decrease as the iterator makes progress. + + + + + Initial iterator state of an async iterator. + Distinct from so that DisposeAsync can throw in latter case. + + + + + First state of an iterator state machine. State numbers decrease for subsequent finalize states. + + + + + The last state of a state machine. + + + + + State machine not started or is running + + + + + First unused state + + + + + First state in async state machine that is used to resume the machine after await. + State numbers increase as the async computation makes progress. + + + + + Initial iterator state of an iterator. + + + + + First state in iterator state machine that is used to resume the machine after yield return. + Initial state is not used to resume state machine that yielded. State numbers increase as the iterator makes progress. + + + + + Primary constructor information blob + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + Gets the data blob + + + + + Constructor + + + + + Constructor + + Source server file contents + + + + 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 + + + + + Gets the Metadata token of the document if available. + + + + + 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 + + + + + Gets the Metadata token of the document if available. + + + + + 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 type, but + not a generic type definition, i.e., a TypeSpec. + + The 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 field/method/event/property + Field/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 + + + + + + + + Gets all custom attributes + + + + + + + Initializes + + + + + + + + + + Gets all custom debug infos + + + + + + + Initializes + + + + + + + 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 + + + + + + + + The module where this instance is located + + + + + + + + + + + + + A reference to a resource in another assembly + + + + + + + + Gets/sets the assembly reference + + + + + Constructor + + Name of resource + Assembly reference + Resource flags + + + + + + The module where this instance is located + + + + + + + + + + + + + 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 + + + + + + The module where this instance is located + + + + + + + + + + + + + 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 + + + + Extension of for writing resource set elements + + + + + Format version of the resource set + + + + + Specifies the target reader type of the resource set + + + + + Writes a 7-bit encoded integer. + + The value to write + + + + 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 + Format of the serialized data + Type of serialized data + + + + + Creates serialized data + + Serialized data + + + + + Creates a user type for a built-in resource type code. + Useful when writing V1 resources. + + The built-in resource type code or null if not supported + + + + + 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 + + + + + The ResourceReader type name used by this set + + + + + The ResourceSet type name used by this set + + + + + The type of resource reader used to read this set + + + + + Format version of the resource set + + + + + Creates a new instance + + The ResourceReader type name to use + The ResourceSet type name to use + + + + + Gets the number of elements in the set + + + + + Gets all resource elements + + + + + Adds a new resource to the set, overwriting any existing resource + + + + + + Creates a new instance for a DeserializingResourceReader + + Version of System.Resources.Extensions assembly to use + Resource format version, the default is 2 + + + + Creates a new instance for a ResourceReader + + Module in which the set will reside + /// Resource format version, the default is 2 + + + + Creates a new instance for a ResourceReader + + mscorlib assembly version + Resource format version, the default is 2 + + + + Creates a new instance based on this instance + + + + + + 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 + Format of the 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. + + + + + Reads a .NET resource + + User type resource data factory + Data of resource + Call back that gets called to create a instance. Can be null. + + + + + Resource reader type + + + + + System.Resources.ResourceReader + + + + + System.Resources.Extensions.DeserializingResourceReader + + + + + Type of resource + + + + + null + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + array + + + + + + + + + + Start of user types + + + + + Writes .NET resources + + + + + Write .NET resources + + Owner module + Output stream + .NET resources + + + + Write .NET resources + + Owner module + User type factory + 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 + + + + + Gets the serialization format of + + + + + Constructor + + User resource type + Raw serialized data + + + + + + + + + + + Specifies how the data in should be deserialized. + + + + + The data can be deserialized using . + + + + + The data can be deserialized by passing in the raw data into + the method. + + + + + The data can be deserialized by passing the UTF-8 string obtained from the raw data into + the method. + + + + + The data can be deserialized by creating a new instance of the type using a + constructor with a single parameter and passing in + a of the raw data into it. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 Framework 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 Framework 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 + + + + + When comparing MemberDefs in same module, use regular reference comparison instead + comparing the signature, name, and other properties. + + + + + 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 + Root declaring type to check if we should + treat as a generic instance type + 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 + Root declaring type to check if we should + treat as a generic instance type + 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 + Root declaring type to check if we should + treat as a generic instance type + 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 + + true if a TypeSpec is allowed if the next type is a class/value-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 Framework 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 + true if equal sign '=' 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 + + + + + + + + + + + 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 + + + + Rounds up the provided number to the next power of 2 + + The number to round + + + + 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 + + + + + + + + + + + + + Helper class to project WinMD types to CLR types + + + + + 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. + The alignment of the data + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + 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. + + The instance of + Error message + Optional message arguments + + + + #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 + + + + Calculates the requires alignment of this chunk. + Returns 0 for default/no alignment. + + Required alignment + + + + 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 + + + + 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 + Optional message arguments + + + + 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 + + + + + DEPRECATED: + 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 hasn't 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 method + + + + Constructor + + Helps this instance + The method + Keep the original max stack value that has been initialized + in + + + + 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 hasn't 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. + + + + + All columns that can be 2 or 4 bytes are forced to be 4 bytes. + Set this to true if you add a #JTD heap and (if CLR) a #- tables heap is used + or (if Mono/Unity) a #~ or #- tables heap is used. + dnlib won't try to auto detect this from your added heaps since the CLR/CoreCLR vs Mono/Unity behavior + is a little bit different. You may need to set to true if you target CLR/CoreCLR. + + + + + Extra data to write + + + + + Log2Rid 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 1-byte-long + + Offset of data + + + + + Reads a + + Offset of data + + + + + Reads a + + Offset of data + + + + + Reads a 2-byte-long + + 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 + + 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 , returns 0 if out of range + + The file offset to convert + The RVA + + + + Converts an to a , returns 0 if out of range + + 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 , returns 0 if out of range + + The PEInfo context + The file offset to convert + The RVA + + + + Converts an to a , returns 0 if out of range + + 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 + + + + + Checks if is s390x, , 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, for more information see https://docs.microsoft.com/en-us/windows/win32/debug/pe-format + + + + + 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 , returns 0 if out of range + + The file offset to convert + The RVA + + + + Converts an to a , returns 0 if out of range + + 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 + + + + + + + diff --git a/packages/dnlib.4.5.0/lib/net6.0/dnlib.dll b/packages/dnlib.4.5.0/lib/net6.0/dnlib.dll new file mode 100644 index 0000000..8ca0a05 Binary files /dev/null and b/packages/dnlib.4.5.0/lib/net6.0/dnlib.dll differ diff --git a/packages/dnlib.4.5.0/lib/net6.0/dnlib.xml b/packages/dnlib.4.5.0/lib/net6.0/dnlib.xml new file mode 100644 index 0000000..125426c --- /dev/null +++ b/packages/dnlib.4.5.0/lib/net6.0/dnlib.xml @@ -0,0 +1,39493 @@ + + + + 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) + + + Processor Architecture: ARM64 (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 resolve in order 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 Framework 3.5 assembly can be + redirected to a .NET Framework 4.0 assembly if the source module is a .NET Framework 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + Unmanaged calling convention encoded as modopts + + + 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 + + + + + Gets the 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 Framework 1.x XML string or null if it's not a .NET Framework 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 Framework 2.0+) DeclSecurity blob format + + + + + + Reads the old (.NET Framework 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 + + + + + Determines whether a is experimental + + The code + true if the is experimental; otherwise, false + + + + Converts a to an + + The code + A or null if it's invalid + + + + Converts a to an , using a module context to look + up potential experimental opcodes + + The code + The module context + 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 + + + + + Checks if it's a `catch` handler + + + + + Checks if it's a `filter` handler + + + + + Checks if it's a `finally` handler + + + + + Checks if it's a `fault` handler + + + + + 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 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 + The module 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 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 + The module 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 + + + + 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 + The module 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 + + + + 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 + Module 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 module context + + + + Constructor + + The reader + + + + Constructor + + The reader + Method parameters or null if they're not known yet + + + + Constructor + + The reader + Method parameters or null if they're not known yet + The module context + + + + 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. + + + + + Constructs an experimental opcode. + + + + + 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 + + + + Returns the full assembly name of a + + The IAssembly + true to use public key token in name even if a public key is available + String builder to use or null + The full assembly name + + + + Returns the full assembly name of a + + The IAssembly + true to use public key token in name even if a public key is available + String builder to use or null + The full assembly name + + + + + + + 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 + + + + + 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 + + + type argument can be ByRefLike + + + + 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. + + + + + + + + Use already existing s whenever possible + + + + + 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. is non-generic type or generic type without generic arguments. + 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 . + + The type + The imported type or null if is invalid + + + + Imports a as a . 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) + + + + 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) + Force all columns to 4 bytes instead of 2 or 4 bytes + + + + 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 + + + + + + + + + + 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 Framework 1.0) + + + + + MS CLR 1.0 version string (.NET Framework 1.0). This is an incorrect version that shouldn't be used. + + + + + MS CLR 1.0 version string (.NET Framework 1.0). This is an incorrect version that shouldn't be used. + + + + + MS CLR 1.0 version string (.NET Framework 1.0). This is an incorrect version that shouldn't be used. + + + + + MS CLR 1.1 version string (.NET Framework 1.1) + + + + + MS CLR 2.0 version string (.NET Framework 2.0-3.5) + + + + + MS CLR 4.0 version string (.NET Framework 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 + + + + Finds all LocalVariable rids owned by + + Owner LocalScope rid + A instance containing the valid LocalVariable rids + + + + Finds all LocalConstant rids owned by + + Owner LocalScope rid + A instance containing the valid LocalConstant 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) + + + + Initializes MD tables + + Type system table rows (from #Pdb stream) + Force all columns to 4 bytes instead of 2 or 4 bytes + + + + + + + + + + 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 + + + + Get the declaring type's name + + 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 + + + + Registers an experimental CIL opcode. It must be a 2-byte opcode + where the first byte lies within the range 0xF0..0xFB. + + + + + Clears an experimental CIL opcode. + + + + + Attempts to get an experimental CIL opcode. + + + + + 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 , , ... + + + + + true if is s390x, , ... + + + + + 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 Framework 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 Framework 1.0/1.1 use version 1.0 (0x0100) and + .NET Framework 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 Framework 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 + + + + Compilation metadata references + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + Gets all references + + + + + Constructor + + + + + Compilation metadata reference flags, see https://github.com/dotnet/roslyn/blob/master/docs/features/pdb-compilation-options.md + + + + + No bit is set + + + + + Set if it's an assembly reference, clear if it's a module reference + + + + + EmbedInteropTypes was enabled + + + + + A compilation metadata reference + + + + + Name of the reference (eg. filename) + + + + + Aliases (or an empty string), separated with commas + + + + + Gets the flags + + + + + Gets the timestamp stored in the PE header + + + + + Gets SizeOfImage stored in the PE header + + + + + Gets the MVID stored in the .NET metadata + + + + + Constructor + + + + + Constructor + + Name of reference + Aliases (or an empty string), separated with commas + Reference flags + Timestamp in PE header + SizeOfImage in PE header + MVID stored in the .NET metadata + + + + Compilation options + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + Gets all compilation options, see https://github.com/dotnet/roslyn/blob/master/docs/features/pdb-compilation-options.md . + Option names (key): see roslyn/src/Compilers/Core/Portable/PEWriter/CompilationOptionNames.cs + + + + + Constructor + + + + + Links a TypeDef with no method IL with a PDB document. + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + List of documents associated with the type + + + + + + + Initializes + + + + Contains the EnC state machine state mapping + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + State machine states + + + + + Constructor + + + + + State machine state information used by debuggers + + + + + Syntax offset + + + + + State machine state + + + + + Constructor + + Syntax offset + State machine state + + + + State machine state + from Roslyn: StateMachineState.cs + + + + + First state of an async iterator state machine that is used to resume the machine after yield return. + Initial state is not used to resume state machine that yielded. State numbers decrease as the iterator makes progress. + + + + + Initial iterator state of an async iterator. + Distinct from so that DisposeAsync can throw in latter case. + + + + + First state of an iterator state machine. State numbers decrease for subsequent finalize states. + + + + + The last state of a state machine. + + + + + State machine not started or is running + + + + + First unused state + + + + + First state in async state machine that is used to resume the machine after await. + State numbers increase as the async computation makes progress. + + + + + Initial iterator state of an iterator. + + + + + First state in iterator state machine that is used to resume the machine after yield return. + Initial state is not used to resume state machine that yielded. State numbers increase as the iterator makes progress. + + + + + Primary constructor information blob + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + Gets the data blob + + + + + Constructor + + + + + Constructor + + Source server file contents + + + + 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 + + + + + Gets the Metadata token of the document if available. + + + + + 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 + + + + + Gets the Metadata token of the document if available. + + + + + 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 type, but + not a generic type definition, i.e., a TypeSpec. + + The 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 field/method/event/property + Field/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 + + + + + + + + Gets all custom attributes + + + + + + + Initializes + + + + + + + + + + Gets all custom debug infos + + + + + + + Initializes + + + + + + + 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 + + + + + + + + The module where this instance is located + + + + + + + + + + + + + A reference to a resource in another assembly + + + + + + + + Gets/sets the assembly reference + + + + + Constructor + + Name of resource + Assembly reference + Resource flags + + + + + + The module where this instance is located + + + + + + + + + + + + + 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 + + + + + + The module where this instance is located + + + + + + + + + + + + + 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 + + + + Extension of for writing resource set elements + + + + + Format version of the resource set + + + + + Specifies the target reader type of the resource set + + + + + Writes a 7-bit encoded integer. + + The value to write + + + + 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 + Format of the serialized data + Type of serialized data + + + + + Creates serialized data + + Serialized data + + + + + Creates a user type for a built-in resource type code. + Useful when writing V1 resources. + + The built-in resource type code or null if not supported + + + + + 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 + + + + + The ResourceReader type name used by this set + + + + + The ResourceSet type name used by this set + + + + + The type of resource reader used to read this set + + + + + Format version of the resource set + + + + + Creates a new instance + + The ResourceReader type name to use + The ResourceSet type name to use + + + + + Gets the number of elements in the set + + + + + Gets all resource elements + + + + + Adds a new resource to the set, overwriting any existing resource + + + + + + Creates a new instance for a DeserializingResourceReader + + Version of System.Resources.Extensions assembly to use + Resource format version, the default is 2 + + + + Creates a new instance for a ResourceReader + + Module in which the set will reside + /// Resource format version, the default is 2 + + + + Creates a new instance for a ResourceReader + + mscorlib assembly version + Resource format version, the default is 2 + + + + Creates a new instance based on this instance + + + + + + 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 + Format of the 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. + + + + + Reads a .NET resource + + User type resource data factory + Data of resource + Call back that gets called to create a instance. Can be null. + + + + + Resource reader type + + + + + System.Resources.ResourceReader + + + + + System.Resources.Extensions.DeserializingResourceReader + + + + + Type of resource + + + + + null + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + array + + + + + + + + + + Start of user types + + + + + Writes .NET resources + + + + + Write .NET resources + + Owner module + Output stream + .NET resources + + + + Write .NET resources + + Owner module + User type factory + 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 + + + + + Gets the serialization format of + + + + + Constructor + + User resource type + Raw serialized data + + + + + + + + + + + Specifies how the data in should be deserialized. + + + + + The data can be deserialized using . + + + + + The data can be deserialized by passing in the raw data into + the method. + + + + + The data can be deserialized by passing the UTF-8 string obtained from the raw data into + the method. + + + + + The data can be deserialized by creating a new instance of the type using a + constructor with a single parameter and passing in + a of the raw data into it. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 Framework 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 Framework 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 + + + + + When comparing MemberDefs in same module, use regular reference comparison instead + comparing the signature, name, and other properties. + + + + + 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 + Root declaring type to check if we should + treat as a generic instance type + 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 + Root declaring type to check if we should + treat as a generic instance type + 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 + Root declaring type to check if we should + treat as a generic instance type + 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 + + true if a TypeSpec is allowed if the next type is a class/value-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 Framework 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 + true if equal sign '=' 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 + + + + + + + + + + + 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 + + + + Rounds up the provided number to the next power of 2 + + The number to round + + + + 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 + + + + + + + + + + + + + Helper class to project WinMD types to CLR types + + + + + 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. + The alignment of the data + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + 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. + + The instance of + Error message + Optional message arguments + + + + #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 + + + + Calculates the requires alignment of this chunk. + Returns 0 for default/no alignment. + + Required alignment + + + + 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 + + + + 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 + Optional message arguments + + + + 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 + + + + + DEPRECATED: + 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 hasn't 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 method + + + + Constructor + + Helps this instance + The method + Keep the original max stack value that has been initialized + in + + + + 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 hasn't 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. + + + + + All columns that can be 2 or 4 bytes are forced to be 4 bytes. + Set this to true if you add a #JTD heap and (if CLR) a #- tables heap is used + or (if Mono/Unity) a #~ or #- tables heap is used. + dnlib won't try to auto detect this from your added heaps since the CLR/CoreCLR vs Mono/Unity behavior + is a little bit different. You may need to set to true if you target CLR/CoreCLR. + + + + + Extra data to write + + + + + Log2Rid 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 1-byte-long + + Offset of data + + + + + Reads a + + Offset of data + + + + + Reads a + + Offset of data + + + + + Reads a 2-byte-long + + 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 + + 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 , returns 0 if out of range + + The file offset to convert + The RVA + + + + Converts an to a , returns 0 if out of range + + 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 , returns 0 if out of range + + The PEInfo context + The file offset to convert + The RVA + + + + Converts an to a , returns 0 if out of range + + 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 + + + + + Checks if is s390x, , 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, for more information see https://docs.microsoft.com/en-us/windows/win32/debug/pe-format + + + + + 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 , returns 0 if out of range + + The file offset to convert + The RVA + + + + Converts an to a , returns 0 if out of range + + 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 + + + + + + + diff --git a/packages/dnlib.4.5.0/lib/netstandard2.0/dnlib.dll b/packages/dnlib.4.5.0/lib/netstandard2.0/dnlib.dll new file mode 100644 index 0000000..81e682a Binary files /dev/null and b/packages/dnlib.4.5.0/lib/netstandard2.0/dnlib.dll differ diff --git a/packages/dnlib.4.5.0/lib/netstandard2.0/dnlib.xml b/packages/dnlib.4.5.0/lib/netstandard2.0/dnlib.xml new file mode 100644 index 0000000..125426c --- /dev/null +++ b/packages/dnlib.4.5.0/lib/netstandard2.0/dnlib.xml @@ -0,0 +1,39493 @@ + + + + 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) + + + Processor Architecture: ARM64 (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 resolve in order 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 Framework 3.5 assembly can be + redirected to a .NET Framework 4.0 assembly if the source module is a .NET Framework 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + Unmanaged calling convention encoded as modopts + + + 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 + + + + + Gets the 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 Framework 1.x XML string or null if it's not a .NET Framework 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 Framework 2.0+) DeclSecurity blob format + + + + + + Reads the old (.NET Framework 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 + + + + + Determines whether a is experimental + + The code + true if the is experimental; otherwise, false + + + + Converts a to an + + The code + A or null if it's invalid + + + + Converts a to an , using a module context to look + up potential experimental opcodes + + The code + The module context + 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 + + + + + Checks if it's a `catch` handler + + + + + Checks if it's a `filter` handler + + + + + Checks if it's a `finally` handler + + + + + Checks if it's a `fault` handler + + + + + 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 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 + The module 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 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 + The module 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 + + + + 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 + The module 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 + + + + 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 + Module 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 module context + + + + Constructor + + The reader + + + + Constructor + + The reader + Method parameters or null if they're not known yet + + + + Constructor + + The reader + Method parameters or null if they're not known yet + The module context + + + + 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. + + + + + Constructs an experimental opcode. + + + + + 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 + + + + Returns the full assembly name of a + + The IAssembly + true to use public key token in name even if a public key is available + String builder to use or null + The full assembly name + + + + Returns the full assembly name of a + + The IAssembly + true to use public key token in name even if a public key is available + String builder to use or null + The full assembly name + + + + + + + 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 + + + + + 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 + + + type argument can be ByRefLike + + + + 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. + + + + + + + + Use already existing s whenever possible + + + + + 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. is non-generic type or generic type without generic arguments. + 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 . + + The type + The imported type or null if is invalid + + + + Imports a as a . 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) + + + + 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) + Force all columns to 4 bytes instead of 2 or 4 bytes + + + + 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 + + + + + + + + + + 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 Framework 1.0) + + + + + MS CLR 1.0 version string (.NET Framework 1.0). This is an incorrect version that shouldn't be used. + + + + + MS CLR 1.0 version string (.NET Framework 1.0). This is an incorrect version that shouldn't be used. + + + + + MS CLR 1.0 version string (.NET Framework 1.0). This is an incorrect version that shouldn't be used. + + + + + MS CLR 1.1 version string (.NET Framework 1.1) + + + + + MS CLR 2.0 version string (.NET Framework 2.0-3.5) + + + + + MS CLR 4.0 version string (.NET Framework 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 + + + + Finds all LocalVariable rids owned by + + Owner LocalScope rid + A instance containing the valid LocalVariable rids + + + + Finds all LocalConstant rids owned by + + Owner LocalScope rid + A instance containing the valid LocalConstant 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) + + + + Initializes MD tables + + Type system table rows (from #Pdb stream) + Force all columns to 4 bytes instead of 2 or 4 bytes + + + + + + + + + + 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 + + + + Get the declaring type's name + + 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 + + + + Registers an experimental CIL opcode. It must be a 2-byte opcode + where the first byte lies within the range 0xF0..0xFB. + + + + + Clears an experimental CIL opcode. + + + + + Attempts to get an experimental CIL opcode. + + + + + 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 , , ... + + + + + true if is s390x, , ... + + + + + 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 Framework 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 Framework 1.0/1.1 use version 1.0 (0x0100) and + .NET Framework 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 Framework 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 + + + + Compilation metadata references + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + Gets all references + + + + + Constructor + + + + + Compilation metadata reference flags, see https://github.com/dotnet/roslyn/blob/master/docs/features/pdb-compilation-options.md + + + + + No bit is set + + + + + Set if it's an assembly reference, clear if it's a module reference + + + + + EmbedInteropTypes was enabled + + + + + A compilation metadata reference + + + + + Name of the reference (eg. filename) + + + + + Aliases (or an empty string), separated with commas + + + + + Gets the flags + + + + + Gets the timestamp stored in the PE header + + + + + Gets SizeOfImage stored in the PE header + + + + + Gets the MVID stored in the .NET metadata + + + + + Constructor + + + + + Constructor + + Name of reference + Aliases (or an empty string), separated with commas + Reference flags + Timestamp in PE header + SizeOfImage in PE header + MVID stored in the .NET metadata + + + + Compilation options + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + Gets all compilation options, see https://github.com/dotnet/roslyn/blob/master/docs/features/pdb-compilation-options.md . + Option names (key): see roslyn/src/Compilers/Core/Portable/PEWriter/CompilationOptionNames.cs + + + + + Constructor + + + + + Links a TypeDef with no method IL with a PDB document. + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + List of documents associated with the type + + + + + + + Initializes + + + + Contains the EnC state machine state mapping + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + State machine states + + + + + Constructor + + + + + State machine state information used by debuggers + + + + + Syntax offset + + + + + State machine state + + + + + Constructor + + Syntax offset + State machine state + + + + State machine state + from Roslyn: StateMachineState.cs + + + + + First state of an async iterator state machine that is used to resume the machine after yield return. + Initial state is not used to resume state machine that yielded. State numbers decrease as the iterator makes progress. + + + + + Initial iterator state of an async iterator. + Distinct from so that DisposeAsync can throw in latter case. + + + + + First state of an iterator state machine. State numbers decrease for subsequent finalize states. + + + + + The last state of a state machine. + + + + + State machine not started or is running + + + + + First unused state + + + + + First state in async state machine that is used to resume the machine after await. + State numbers increase as the async computation makes progress. + + + + + Initial iterator state of an iterator. + + + + + First state in iterator state machine that is used to resume the machine after yield return. + Initial state is not used to resume state machine that yielded. State numbers increase as the iterator makes progress. + + + + + Primary constructor information blob + + + + + Returns + + + + + Gets the custom debug info guid, see + + + + + Gets the data blob + + + + + Constructor + + + + + Constructor + + Source server file contents + + + + 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 + + + + + Gets the Metadata token of the document if available. + + + + + 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 + + + + + Gets the Metadata token of the document if available. + + + + + 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 type, but + not a generic type definition, i.e., a TypeSpec. + + The 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 field/method/event/property + Field/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 + + + + + + + + Gets all custom attributes + + + + + + + Initializes + + + + + + + + + + Gets all custom debug infos + + + + + + + Initializes + + + + + + + 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 + + + + + + + + The module where this instance is located + + + + + + + + + + + + + A reference to a resource in another assembly + + + + + + + + Gets/sets the assembly reference + + + + + Constructor + + Name of resource + Assembly reference + Resource flags + + + + + + The module where this instance is located + + + + + + + + + + + + + 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 + + + + + + The module where this instance is located + + + + + + + + + + + + + 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 + + + + Extension of for writing resource set elements + + + + + Format version of the resource set + + + + + Specifies the target reader type of the resource set + + + + + Writes a 7-bit encoded integer. + + The value to write + + + + 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 + Format of the serialized data + Type of serialized data + + + + + Creates serialized data + + Serialized data + + + + + Creates a user type for a built-in resource type code. + Useful when writing V1 resources. + + The built-in resource type code or null if not supported + + + + + 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 + + + + + The ResourceReader type name used by this set + + + + + The ResourceSet type name used by this set + + + + + The type of resource reader used to read this set + + + + + Format version of the resource set + + + + + Creates a new instance + + The ResourceReader type name to use + The ResourceSet type name to use + + + + + Gets the number of elements in the set + + + + + Gets all resource elements + + + + + Adds a new resource to the set, overwriting any existing resource + + + + + + Creates a new instance for a DeserializingResourceReader + + Version of System.Resources.Extensions assembly to use + Resource format version, the default is 2 + + + + Creates a new instance for a ResourceReader + + Module in which the set will reside + /// Resource format version, the default is 2 + + + + Creates a new instance for a ResourceReader + + mscorlib assembly version + Resource format version, the default is 2 + + + + Creates a new instance based on this instance + + + + + + 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 + Format of the 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. + + + + + Reads a .NET resource + + User type resource data factory + Data of resource + Call back that gets called to create a instance. Can be null. + + + + + Resource reader type + + + + + System.Resources.ResourceReader + + + + + System.Resources.Extensions.DeserializingResourceReader + + + + + Type of resource + + + + + null + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + array + + + + + + + + + + Start of user types + + + + + Writes .NET resources + + + + + Write .NET resources + + Owner module + Output stream + .NET resources + + + + Write .NET resources + + Owner module + User type factory + 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 + + + + + Gets the serialization format of + + + + + Constructor + + User resource type + Raw serialized data + + + + + + + + + + + Specifies how the data in should be deserialized. + + + + + The data can be deserialized using . + + + + + The data can be deserialized by passing in the raw data into + the method. + + + + + The data can be deserialized by passing the UTF-8 string obtained from the raw data into + the method. + + + + + The data can be deserialized by creating a new instance of the type using a + constructor with a single parameter and passing in + a of the raw data into it. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 + + + + + Compares definitions in same module using reference comparison instead of comparing them by name, signature, etc. + + + + + 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 Framework 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 Framework 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 + + + + + When comparing MemberDefs in same module, use regular reference comparison instead + comparing the signature, name, and other properties. + + + + + 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 + Root declaring type to check if we should + treat as a generic instance type + 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 + Root declaring type to check if we should + treat as a generic instance type + 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 + Root declaring type to check if we should + treat as a generic instance type + 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 + + true if a TypeSpec is allowed if the next type is a class/value-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 Framework 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 + true if equal sign '=' 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 + + + + + + + + + + + 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 + + + + Rounds up the provided number to the next power of 2 + + The number to round + + + + 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 + + + + + + + + + + + + + Helper class to project WinMD types to CLR types + + + + + 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. + The alignment of the data + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + 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. + + The instance of + Error message + Optional message arguments + + + + #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 + + + + Calculates the requires alignment of this chunk. + Returns 0 for default/no alignment. + + Required alignment + + + + 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 + + + + 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 + Optional message arguments + + + + 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 + + + + + DEPRECATED: + 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 hasn't 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 method + + + + Constructor + + Helps this instance + The method + Keep the original max stack value that has been initialized + in + + + + 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 hasn't 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. + + + + + All columns that can be 2 or 4 bytes are forced to be 4 bytes. + Set this to true if you add a #JTD heap and (if CLR) a #- tables heap is used + or (if Mono/Unity) a #~ or #- tables heap is used. + dnlib won't try to auto detect this from your added heaps since the CLR/CoreCLR vs Mono/Unity behavior + is a little bit different. You may need to set to true if you target CLR/CoreCLR. + + + + + Extra data to write + + + + + Log2Rid 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 1-byte-long + + Offset of data + + + + + Reads a + + Offset of data + + + + + Reads a + + Offset of data + + + + + Reads a 2-byte-long + + 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 + + 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 , returns 0 if out of range + + The file offset to convert + The RVA + + + + Converts an to a , returns 0 if out of range + + 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 , returns 0 if out of range + + The PEInfo context + The file offset to convert + The RVA + + + + Converts an to a , returns 0 if out of range + + 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 + + + + + Checks if is s390x, , 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, for more information see https://docs.microsoft.com/en-us/windows/win32/debug/pe-format + + + + + 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 , returns 0 if out of range + + The file offset to convert + The RVA + + + + Converts an to a , returns 0 if out of range + + 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 + + + + + + +