|
|
|
@ -21,6 +21,7 @@ using System.Collections.Generic;
@@ -21,6 +21,7 @@ using System.Collections.Generic;
|
|
|
|
|
using System.Globalization; |
|
|
|
|
using System.Linq; |
|
|
|
|
using System.Reflection.Metadata; |
|
|
|
|
using System.Reflection.Metadata.Ecma335; |
|
|
|
|
using System.Reflection.PortableExecutable; |
|
|
|
|
using System.Text; |
|
|
|
|
using System.Threading.Tasks; |
|
|
|
@ -28,6 +29,7 @@ using System.Windows;
@@ -28,6 +29,7 @@ using System.Windows;
|
|
|
|
|
using System.Windows.Data; |
|
|
|
|
using ICSharpCode.Decompiler; |
|
|
|
|
using ICSharpCode.Decompiler.Metadata; |
|
|
|
|
using ICSharpCode.ILSpy.Options; |
|
|
|
|
using ICSharpCode.ILSpy.TreeNodes; |
|
|
|
|
using ICSharpCode.ILSpy.ViewModels; |
|
|
|
|
|
|
|
|
@ -68,40 +70,76 @@ namespace ICSharpCode.ILSpy.Metadata
@@ -68,40 +70,76 @@ namespace ICSharpCode.ILSpy.Metadata
|
|
|
|
|
this.Children.Add(new CoffHeaderTreeNode(module)); |
|
|
|
|
this.Children.Add(new OptionalHeaderTreeNode(module)); |
|
|
|
|
this.Children.Add(new DataDirectoriesTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.Module)) |
|
|
|
|
this.Children.Add(new ModuleTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.TypeRef)) |
|
|
|
|
this.Children.Add(new TypeRefTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.TypeDef)) |
|
|
|
|
this.Children.Add(new TypeDefTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.Field)) |
|
|
|
|
this.Children.Add(new FieldTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.MethodDef)) |
|
|
|
|
this.Children.Add(new MethodTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.Param)) |
|
|
|
|
this.Children.Add(new ParamTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.InterfaceImpl)) |
|
|
|
|
this.Children.Add(new InterfaceImplTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.MemberRef)) |
|
|
|
|
this.Children.Add(new MemberRefTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.Constant)) |
|
|
|
|
this.Children.Add(new ConstantTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.CustomAttribute)) |
|
|
|
|
this.Children.Add(new CustomAttributeTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.FieldMarshal)) |
|
|
|
|
this.Children.Add(new FieldMarshalTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.DeclSecurity)) |
|
|
|
|
this.Children.Add(new DeclSecurityTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.ClassLayout)) |
|
|
|
|
this.Children.Add(new ClassLayoutTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.FieldLayout)) |
|
|
|
|
this.Children.Add(new FieldLayoutTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.StandAloneSig)) |
|
|
|
|
this.Children.Add(new StandAloneSigTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.EventMap)) |
|
|
|
|
this.Children.Add(new EventMapTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.Event)) |
|
|
|
|
this.Children.Add(new EventTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.PropertyMap)) |
|
|
|
|
this.Children.Add(new PropertyMapTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.Property)) |
|
|
|
|
this.Children.Add(new PropertyTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.MethodSemantics)) |
|
|
|
|
this.Children.Add(new MethodSemanticsTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.MethodImpl)) |
|
|
|
|
this.Children.Add(new MethodImplTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.ModuleRef)) |
|
|
|
|
this.Children.Add(new ModuleRefTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.TypeSpec)) |
|
|
|
|
this.Children.Add(new TypeSpecTableTreeNode(module)); |
|
|
|
|
this.Children.Add(new ImplMapTableTreeNode(module)); ; |
|
|
|
|
if (ShowTable(TableIndex.ImplMap)) |
|
|
|
|
this.Children.Add(new ImplMapTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.FieldRva)) |
|
|
|
|
this.Children.Add(new FieldRVATableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.Assembly)) |
|
|
|
|
this.Children.Add(new AssemblyTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.AssemblyRef)) |
|
|
|
|
this.Children.Add(new AssemblyRefTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.File)) |
|
|
|
|
this.Children.Add(new FileTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.ExportedType)) |
|
|
|
|
this.Children.Add(new ExportedTypeTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.ManifestResource)) |
|
|
|
|
this.Children.Add(new ManifestResourceTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.NestedClass)) |
|
|
|
|
this.Children.Add(new NestedClassTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.GenericParam)) |
|
|
|
|
this.Children.Add(new GenericParamTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.MethodSpec)) |
|
|
|
|
this.Children.Add(new MethodSpecTableTreeNode(module)); |
|
|
|
|
if (ShowTable(TableIndex.GenericParamConstraint)) |
|
|
|
|
this.Children.Add(new GenericParamConstraintTableTreeNode(module)); |
|
|
|
|
|
|
|
|
|
bool ShowTable(TableIndex table) => !DisplaySettingsPanel.CurrentDisplaySettings.HideEmptyMetadataTables || module.Metadata.GetTableRowCount(table) > 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public MetadataTableTreeNode FindNodeByHandleKind(HandleKind kind) |
|
|
|
|