{"record":{"id":"8f87101f669d87ac","repo":"icsharpcode/ILSpy","slug":"extension-member-extmember-is-not-supported-for","errorCode":null,"errorMessage":"Extension member {extMember} is not supported for decompilation.","messagePattern":"Extension member (.+?) is not supported for decompilation\\.","errorType":"exception","errorClass":"NotSupportedException","httpStatus":null,"severity":"error","filePath":"ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs","lineNumber":2076,"sourceCode":"\t\t\t\t\t\t\tvar prop = DoDecompile(p, decompileRun, decompilationContext.WithCurrentMember(p), extensionInfo);\r\n\t\t\t\t\t\t\tRemoveAttribute(prop, KnownAttribute.ExtensionMarker);\r\n\t\t\t\t\t\t\tif (p.Getter != null)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tRemoveAttribute(prop.GetChild(Slots.Getter)!, KnownAttribute.ExtensionMarker);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (p.Setter != null)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tRemoveAttribute(prop.GetChild(Slots.Setter)!, KnownAttribute.ExtensionMarker);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\textMemberDecl = prop;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tcase IMethod m:\r\n\t\t\t\t\t\t\tvar meth = DoDecompile(m, decompileRun, decompilationContext.WithCurrentMember(m), extensionInfo);\r\n\t\t\t\t\t\t\tRemoveAttribute(meth, KnownAttribute.ExtensionMarker);\r\n\t\t\t\t\t\t\textMemberDecl = meth;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\tthrow new NotSupportedException($\"Extension member {extMember} is not supported for decompilation.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\text.Members.Add(extMemberDecl);\r\n\t\t\t\t\tentityMap.Add(extMember, extMemberDecl);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tEnumValueDisplayMode DetectBestEnumValueDisplayMode(ITypeDefinition typeDef, MetadataFile module)\r\n\t\t{\r\n\t\t\tif (typeDef.HasAttribute(KnownAttribute.Flags))\r\n\t\t\t\treturn EnumValueDisplayMode.AllHex;\r\n\t\t\tbool first = true;\r\n\t\t\tlong firstValue = 0, previousValue = 0;\r\n\t\t\tbool allPowersOfTwo = true;\r\n\t\t\tbool allConsecutive = true;\r\n\t\t\tforeach (var field in typeDef.Fields)\r\n\t\t\t{\r\n\t\t\t\tif (MemberIsHidden(module, field.MetadataToken, settings))\r","sourceCodeStart":2058,"sourceCodeEnd":2094,"githubUrl":"https://github.com/icsharpcode/ILSpy/blob/60c08fcb74fcc183130f73c861ed35cf944d0bf1/ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs#L2058-L2094","documentation":"NotSupportedException from DoDecompileExtensionMembers' default case: an extension-group member that is neither IProperty nor IMethod. Extension members in this codebase are decompiled only for properties and methods; anything else (an event or field marked as an extension member) is unsupported.","triggerScenarios":"Decompiling an assembly (typically VB.NET) whose extension group contains an event or field member, with settings.ExtensionMembers enabled.","commonSituations":"VB assemblies with extension members beyond methods/properties; experimental metadata that marks unusual members with the extension marker.","solutions":["Catch NotSupportedException around per-extension-member decompilation and skip the offending member.","Disable settings.ExtensionMembers if extension-block decompilation is not required."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// If you do not need VB-style extension blocks, disable the feature to make the path unreachable:\nsettings.ExtensionMembers = false;","typeGuard":null,"tryCatchPattern":"try {\n    var tree = decompiler.Decompile(handle);\n} catch (NotSupportedException ex) when (ex.Message.Contains(\"Extension member\")) {\n    logger.Warning(\"Skipping unsupported extension member: {Message}\", ex.Message);\n}","preventionTips":["Set DecompilerSettings.ExtensionMembers = false unless you specifically need VB-style extension blocks.","Catch NotSupportedException per extension member so one bad member does not abort the type."],"tags":["decompilation","extensions","vb","metadata"],"backgroundTag":null,"analyzedSha":"60c08fcb74fcc183130f73c861ed35cf944d0bf1","analyzedAt":"2026-08-13T11:34:51.223Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}