From 888d6b6088d34f64f9b3b962bc592a1e3f3a03cf Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Fri, 20 Jul 2018 19:58:11 +0200 Subject: [PATCH] Fix #1219: v4.x: crashing on XmlBamlReader.ReadDefAttribute() --- .../XmlBamlReader.cs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ILSpy.BamlDecompiler/Ricciolo.StylesExplorer.MarkupReflection/XmlBamlReader.cs b/ILSpy.BamlDecompiler/Ricciolo.StylesExplorer.MarkupReflection/XmlBamlReader.cs index 179b885c2..6e7e3c37c 100644 --- a/ILSpy.BamlDecompiler/Ricciolo.StylesExplorer.MarkupReflection/XmlBamlReader.cs +++ b/ILSpy.BamlDecompiler/Ricciolo.StylesExplorer.MarkupReflection/XmlBamlReader.cs @@ -909,11 +909,12 @@ namespace Ricciolo.StylesExplorer.MarkupReflection break; default: string recordName = stringTable[identifier]; - if (recordName != "Key") throw new NotSupportedException(recordName); pd = new PropertyDeclaration(recordName, XamlTypeDeclaration); - if (keys == null) - keys = new List(); - keys.Add(new KeyMapping(text) { Position = -1 }); + if (recordName == "Key") { + if (keys == null) + keys = new List(); + keys.Add(new KeyMapping(text) { Position = -1 }); + } break; } @@ -1408,10 +1409,10 @@ namespace Ricciolo.StylesExplorer.MarkupReflection string GetTypeExtension(short typeIdentifier) { string prefix = LookupPrefix(XmlToClrNamespaceMapping.XamlNamespace, false); - if (String.IsNullOrEmpty(prefix)) - return String.Format("{{Type {0}}}", FormatTypeDeclaration(GetTypeDeclaration(typeIdentifier))); - else - return String.Format("{{{0}:Type {1}}}", prefix, FormatTypeDeclaration(GetTypeDeclaration(typeIdentifier))); + string typeName = FormatTypeDeclaration(GetTypeDeclaration(typeIdentifier)); + if (string.IsNullOrEmpty(prefix)) + return string.Format("{{Type {0}}}", typeName); + return string.Format("{{{0}:Type {1}}}", prefix, typeName); } string FormatTypeDeclaration(TypeDeclaration typeDeclaration)