Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAtsushi Eno <atsushieno@gmail.com>2008-04-11 10:34:35 +0400
committerAtsushi Eno <atsushieno@gmail.com>2008-04-11 10:34:35 +0400
commitda257a4cbba3c02ece1add68004428bff7dc80be (patch)
treed43141e2a7edbb14747ae104acd44b8f0340c9b3 /mcs/class/System.XML/System.Xml.Serialization
parentbb25bb814fd5931257b87517a7df3ba5981a8a68 (diff)
2008-04-11 Atsushi Enomoto <atsushi@ximian.com>
* XmlTypeMapping.cs : .NET 2.0 has a weird behavior that swallows exception from IXmlSerializable.GetSchema(). * XmlSerializerTestClasses.cs, XmlSerializerTests.cs : added test for IXmlSerializable serialization whose GetSchema() borks. svn path=/trunk/mcs/; revision=100415
Diffstat (limited to 'mcs/class/System.XML/System.Xml.Serialization')
-rw-r--r--mcs/class/System.XML/System.Xml.Serialization/ChangeLog5
-rw-r--r--mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs8
2 files changed, 13 insertions, 0 deletions
diff --git a/mcs/class/System.XML/System.Xml.Serialization/ChangeLog b/mcs/class/System.XML/System.Xml.Serialization/ChangeLog
index 49d9824faac..80c5e8bca13 100644
--- a/mcs/class/System.XML/System.Xml.Serialization/ChangeLog
+++ b/mcs/class/System.XML/System.Xml.Serialization/ChangeLog
@@ -1,3 +1,8 @@
+2008-04-11 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlTypeMapping.cs : .NET 2.0 has a weird behavior that swallows
+ exception from IXmlSerializable.GetSchema().
+
2008-04-01 Lluis Sanchez Gual <lluis@novell.com>
* TypeData.cs: Prefix with a '@' type names that are equal to keywords.
diff --git a/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs b/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs
index 71cd1af40b5..703bd82c51a 100644
--- a/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs
+++ b/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs
@@ -247,7 +247,15 @@ namespace System.Xml.Serialization
}
#endif
IXmlSerializable serializable = (IXmlSerializable)Activator.CreateInstance (typeData.Type, true);
+#if NET_2_0
+ try {
+ _schema = serializable.GetSchema();
+ } catch (Exception) {
+ // LAMESPEC: .NET has a bad exception catch and swallows it silently.
+ }
+#else
_schema = serializable.GetSchema();
+#endif
if (_schema != null)
{
if (_schema.Id == null || _schema.Id.Length == 0)