diff --git a/Confuser.Renamer/BAML/BAMLAnalyzer.cs b/Confuser.Renamer/BAML/BAMLAnalyzer.cs index 35d314cdf..dd84e62cb 100644 --- a/Confuser.Renamer/BAML/BAMLAnalyzer.cs +++ b/Confuser.Renamer/BAML/BAMLAnalyzer.cs @@ -413,8 +413,17 @@ void ProcessElementBody(BamlElement root, BamlElement elem) { value = strings[((TextWithIdRecord)txt).ValueId].Value; string prefix; - TypeSig sig = ResolveType(value.Trim(), out prefix); - if (sig != null && context.Modules.Contains((ModuleDefMD)sig.ToBasicTypeDefOrRef().ResolveTypeDefThrow().Module)) { + + TypeSig sig = null; + + //Prevent unhandled exception when BAML strings contain invalid TypeName chars + try + { + sig = ResolveType(value.Trim(), out prefix); + } + catch(TypeNameParserException) {} + + if (sig != null && context.Modules.Contains((ModuleDefMD)sig.ToBasicTypeDefOrRef().ResolveTypeDefThrow().Module)) { var reference = new BAMLConverterTypeReference(xmlnsCtx, sig, txt); AddTypeSigReference(sig, reference); }