Avoid possible duplicate xmlns output. Fixes xsp-based hosting somehow.
authorAtsushi Eno <atsushieno@veritas-vos-liberabit.com>
Fri, 22 Jul 2011 05:02:48 +0000 (14:02 +0900)
committerAtsushi Eno <atsushieno@veritas-vos-liberabit.com>
Fri, 22 Jul 2011 05:02:48 +0000 (14:02 +0900)
mcs/class/System.ServiceModel/System.ServiceModel.Channels/XmlReaderBodyWriter.cs

index f619cda64d1fd24388649fd80b0e668496bb4f44..0880b2583f12a8a5d8a3640d426a3dce788a0ec1 100644 (file)
@@ -73,7 +73,12 @@ namespace System.ServiceModel.Channels
                                var sw = new StringWriter ();
                                var xw = XmlDictionaryWriter.CreateDictionaryWriter (XmlWriter.Create (sw));
                                xw.WriteStartElement (reader.Prefix, reader.LocalName, reader.NamespaceURI);
-                               xw.WriteAttributes (reader, false);
+                               for (int i = 0; i < reader.AttributeCount; i++) {
+                                       reader.MoveToAttribute (i);
+                                       if (reader.NamespaceURI != "http://www.w3.org/2000/xmlns/" || xw.LookupPrefix (reader.Value) == null)
+                                               xw.WriteAttributeString (reader.Prefix, reader.LocalName, reader.NamespaceURI, reader.Value);
+                               }
+                               reader.MoveToElement ();
 
                                var inr = reader as IXmlNamespaceResolver;
                                if (inr != null)