diff options
author | Atsushi Eno <atsushieno@gmail.com> | 2008-04-11 10:34:35 +0400 |
---|---|---|
committer | Atsushi Eno <atsushieno@gmail.com> | 2008-04-11 10:34:35 +0400 |
commit | da257a4cbba3c02ece1add68004428bff7dc80be (patch) | |
tree | d43141e2a7edbb14747ae104acd44b8f0340c9b3 /mcs/class/System.XML/System.Xml.Serialization | |
parent | bb25bb814fd5931257b87517a7df3ba5981a8a68 (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/ChangeLog | 5 | ||||
-rw-r--r-- | mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs | 8 |
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) |