diff options
author | Atsushi Eno <atsushieno@gmail.com> | 2007-11-02 19:25:26 +0300 |
---|---|---|
committer | Atsushi Eno <atsushieno@gmail.com> | 2007-11-02 19:25:26 +0300 |
commit | 439df4a604e868f14796cf5f153f70f6cda01676 (patch) | |
tree | 4bb788548e05bd22e9b338421963dd95c045a421 | |
parent | 151117371d08d44eeb805f77666b0e0b7f399af6 (diff) |
2007-11-02 Atsushi Enomoto <atsushi@ximian.com>
* TypeTranslator.cs : for duration, rather use primitiveTypes than
nameCache, and hence TimeSpan could be serialized just as custom
type. Fixed bug #338705.
* XmlSerializerTests.cs : added test for bug #338705.
svn path=/trunk/mcs/; revision=88729
4 files changed, 19 insertions, 2 deletions
diff --git a/mcs/class/System.XML/System.Xml.Serialization/ChangeLog b/mcs/class/System.XML/System.Xml.Serialization/ChangeLog index 075baafe763..798cbf41c62 100644 --- a/mcs/class/System.XML/System.Xml.Serialization/ChangeLog +++ b/mcs/class/System.XML/System.Xml.Serialization/ChangeLog @@ -1,3 +1,9 @@ +2007-11-02 Atsushi Enomoto <atsushi@ximian.com> + + * TypeTranslator.cs : for duration, rather use primitiveTypes than + nameCache, and hence TimeSpan could be serialized just as custom + type. Fixed bug #338705. + 2007-11-01 Atsushi Enomoto <atsushi@ximian.com> * XmlSchemaImporter.cs : simpleType is allowed to be imported. diff --git a/mcs/class/System.XML/System.Xml.Serialization/TypeTranslator.cs b/mcs/class/System.XML/System.Xml.Serialization/TypeTranslator.cs index efda1962c4e..fb3cedf86e3 100644 --- a/mcs/class/System.XML/System.Xml.Serialization/TypeTranslator.cs +++ b/mcs/class/System.XML/System.Xml.Serialization/TypeTranslator.cs @@ -108,8 +108,6 @@ namespace System.Xml.Serialization nameCache.Add (typeof (byte[]), new TypeData (typeof (byte[]), "base64Binary", true)); nameCache.Add (typeof (XmlNode), new TypeData (typeof (XmlNode), "XmlNode", false)); nameCache.Add (typeof (XmlElement), new TypeData (typeof (XmlElement), "XmlElement", false)); - // The key type is wrong (must be string), but otherwise it cannot be added to Hashtable! - nameCache.Add (typeof (TimeSpan), new TypeData (typeof (string), "duration", true)); primitiveTypes = new Hashtable(); ICollection types = nameCache.Values; @@ -147,6 +145,7 @@ namespace System.Xml.Serialization primitiveTypes.Add ("normalizedString", new TypeData (typeof (string), "normalizedString", true)); primitiveTypes.Add ("anyURI", new TypeData (typeof (string), "anyURI", true)); primitiveTypes.Add ("base64", new TypeData (typeof (byte[]), "base64", true)); + primitiveTypes.Add ("duration", new TypeData (typeof (string), "duration", true)); #if NET_2_0 nullableTypes = Hashtable.Synchronized(new Hashtable ()); diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog b/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog index 3bb7d2ac154..22f15e8db23 100644 --- a/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog +++ b/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog @@ -1,3 +1,7 @@ +2007-11-02 Atsushi Enomoto <atsushi@ximian.com> + + * XmlSerializerTests.cs : added test for bug #338705. + 2007-11-01 Atsushi Enomoto <atsushi@ximian.com> * XmlSchemaImporterTests.cs : test for importing simple-typed diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs index 1c302c79de2..4c7b4cfd961 100644 --- a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs +++ b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs @@ -2291,6 +2291,14 @@ namespace MonoTests.System.XmlSerialization Assert.AreEqual (Infoset (expected), WriterText); } + [Test] // bug #338705 + public void SerializeTimeSpan () + { + // TimeSpan itself is not for duration. Hence it is just regarded as one of custom types. + XmlSerializer ser = new XmlSerializer (typeof (TimeSpan)); + ser.Serialize (TextWriter.Null, TimeSpan.Zero); + } + [Test] public void SerializeDurationToString () { |