diff --git a/ILSpy/Metadata/MetadataTableTreeNode.cs b/ILSpy/Metadata/MetadataTableTreeNode.cs index da323e547..2df51f1c6 100644 --- a/ILSpy/Metadata/MetadataTableTreeNode.cs +++ b/ILSpy/Metadata/MetadataTableTreeNode.cs @@ -145,4 +145,18 @@ namespace ICSharpCode.ILSpy.Metadata { } } + + internal class UnsupportedMetadataTableTreeNode : MetadataTableTreeNode + { + public UnsupportedMetadataTableTreeNode(TableIndex kind, MetadataFile file) + : base(kind, file) + { + } + public override object Text => $"{(int)Kind:X2} {Kind.ToString()} [unsupported] ({metadataFile.Metadata.GetTableRowCount(Kind)})"; + + public override void Decompile(Language language, ITextOutput output, DecompilationOptions options) + { + output.WriteLine($"Unsupported table '{(int)Kind:X2} {Kind}' contains {metadataFile.Metadata.GetTableRowCount(Kind)} rows."); + } + } } \ No newline at end of file diff --git a/ILSpy/Metadata/MetadataTablesTreeNode.cs b/ILSpy/Metadata/MetadataTablesTreeNode.cs index 1572ed4e3..830734e7c 100644 --- a/ILSpy/Metadata/MetadataTablesTreeNode.cs +++ b/ILSpy/Metadata/MetadataTablesTreeNode.cs @@ -142,7 +142,7 @@ namespace ICSharpCode.ILSpy.Metadata case TableIndex.CustomDebugInformation: return new CustomDebugInformationTableTreeNode(metadataFile); default: - throw new ArgumentException($"Unsupported table index: {table}"); + return new UnsupportedMetadataTableTreeNode(table, metadataFile); } }