From cde61cc4f93fd390c570fe69f6b950b93d50f345 Mon Sep 17 00:00:00 2001 From: atsushi Date: Tue, 21 Jul 2009 13:49:37 +0000 Subject: [PATCH] 2009-07-21 Atsushi Enomoto * DataContractSerializer.cs : it does not write dictionary string when it was not created with it. git-svn-id: svn+ssh://mono-cvs.ximian.com/source/trunk/mcs@138295 e3ebcda4-bce8-0310-ba0a-eca2169e7518 --- .../System.Runtime.Serialization/ChangeLog | 5 +++++ .../System.Runtime.Serialization/DataContractSerializer.cs | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/class/System.Runtime.Serialization/System.Runtime.Serialization/ChangeLog b/class/System.Runtime.Serialization/System.Runtime.Serialization/ChangeLog index de175f23e0..46b7023b29 100755 --- a/class/System.Runtime.Serialization/System.Runtime.Serialization/ChangeLog +++ b/class/System.Runtime.Serialization/System.Runtime.Serialization/ChangeLog @@ -1,3 +1,8 @@ +2009-07-21 Atsushi Enomoto + + * DataContractSerializer.cs : it does not write dictionary string + when it was not created with it. + 2009-07-07 Atsushi Enomoto * XmlFormatterDeserializer.cs, SerializationMap.cs : IXmlSerializable diff --git a/class/System.Runtime.Serialization/System.Runtime.Serialization/DataContractSerializer.cs b/class/System.Runtime.Serialization/System.Runtime.Serialization/DataContractSerializer.cs index b8e81fc717..48aa0a2987 100644 --- a/class/System.Runtime.Serialization/System.Runtime.Serialization/DataContractSerializer.cs +++ b/class/System.Runtime.Serialization/System.Runtime.Serialization/DataContractSerializer.cs @@ -55,6 +55,7 @@ namespace System.Runtime.Serialization int max_items = 0x10000; // FIXME: could be from config. + bool names_filled; XmlDictionaryString root_name, root_ns; public DataContractSerializer (Type type) @@ -197,6 +198,7 @@ namespace System.Runtime.Serialization XmlDictionary d = new XmlDictionary (); root_name = d.Add (name); root_ns = d.Add (ns); + names_filled = true; } void Initialize ( @@ -339,7 +341,10 @@ namespace System.Runtime.Serialization if (graph == null) { - writer.WriteStartElement (root_name, root_ns); + if (names_filled) + writer.WriteStartElement (root_name.Value, root_ns.Value); + else + writer.WriteStartElement (root_name, root_ns); writer.WriteAttributeString ("i", "nil", XmlSchema.InstanceNamespace, "true"); return; } @@ -350,7 +355,10 @@ namespace System.Runtime.Serialization known_types.Add (graph.GetType ()); - writer.WriteStartElement (root_name, root_ns); + if (names_filled) + writer.WriteStartElement (root_name.Value, root_ns.Value); + else + writer.WriteStartElement (root_name, root_ns); if (root_ns.Value != root_qname.Namespace) if (root_qname.Namespace != KnownTypeCollection.MSSimpleNamespace) writer.WriteXmlnsAttribute (null, root_qname.Namespace); -- 2.11.4.GIT