Browse Source

Add DumpMetadataInfo in MetadataTreeNode

pull/3149/head
Siegfried Pammer 2 years ago
parent
commit
5dd4c2c682
  1. 28
      ILSpy/Metadata/MetadataTreeNode.cs

28
ILSpy/Metadata/MetadataTreeNode.cs

@ -58,6 +58,34 @@ namespace ICSharpCode.ILSpy.Metadata @@ -58,6 +58,34 @@ namespace ICSharpCode.ILSpy.Metadata
public override void Decompile(Language language, ITextOutput output, DecompilationOptions options)
{
language.WriteCommentLine(output, title);
DumpMetadataInfo(language, output, this.metadataFile.Metadata);
}
internal static void DumpMetadataInfo(Language language, ITextOutput output, MetadataReader metadata)
{
language.WriteCommentLine(output, "MetadataKind: " + metadata.MetadataKind);
language.WriteCommentLine(output, "MetadataVersion: " + metadata.MetadataVersion);
if (metadata.DebugMetadataHeader is { } header)
{
output.WriteLine();
language.WriteCommentLine(output, "Header:");
language.WriteCommentLine(output, "Id: " + header.Id.ToHexString(header.Id.Length));
language.WriteCommentLine(output, "EntryPoint: " + MetadataTokens.GetToken(header.EntryPoint).ToString("X8"));
}
output.WriteLine();
language.WriteCommentLine(output, "Tables:");
foreach (var table in Enum.GetValues<TableIndex>())
{
int count = metadata.GetTableRowCount(table);
if (count > 0)
{
language.WriteCommentLine(output, $"{(byte)table:X2} {table}: {count} rows");
}
}
}
protected override void LoadChildren()

Loading…
Cancel
Save