From 48502c9d85622265927ce88ed3c91eb2023d402a Mon Sep 17 00:00:00 2001
From: Andreas Weizel <rpinski@awzhome.de>
Date: Sun, 30 Mar 2014 03:02:07 +0200
Subject: [PATCH] Fix #414: Loading enum-typed formatter settings from .csproj
 files fails.

---
 src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs b/src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs
index cfdc97341a..dc6ff540dc 100644
--- a/src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs
+++ b/src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs
@@ -1467,11 +1467,15 @@ namespace ICSharpCode.SharpDevelop.Project
 					existing = projectFile.CreateProjectExtensionsElement();
 					return new XElement(name);
 				}
-				string content = existing[name];
+				// Instead of using existing[name] we use a workaround here, because existing[name]
+				// removes all xmlns="..." definitions, which are needed for XAML deserialization.
+				string content = existing.Content;
 				if (string.IsNullOrEmpty(content))
 					return new XElement(name);
 				try {
-					return XElement.Parse(content);
+					var extensionsElement = XElement.Parse(content);
+					var propertiesElement = extensionsElement.Elements().FirstOrDefault(); // Should be the "Properties" node
+					return propertiesElement ?? new XElement(name);
 				} catch (XmlException ex) {
 					LoggingService.Warn(ex);
 					return new XElement(name);