2007-02-19 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Mon, 19 Feb 2007 13:56:15 +0000 (13:56 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Mon, 19 Feb 2007 13:56:15 +0000 (13:56 -0000)
* XmlReflectionImporter.cs : CanBeNull() should return true when the
  argument is generic nullable value type.

* XmlReflectionImporterTests.cs : added test for nullable int import.

svn path=/trunk/mcs/; revision=73117

mcs/class/System.XML/System.Xml.Serialization/ChangeLog
mcs/class/System.XML/System.Xml.Serialization/XmlReflectionImporter.cs
mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog
mcs/class/System.XML/Test/System.Xml.Serialization/XmlReflectionImporterTests.cs

index dfdc84e900ee47d5b150a26dc2f8da6cbbe894c0..34ee2e2991fcdadeb6ebec2a6992d8bdd8cce05a 100644 (file)
@@ -1,3 +1,8 @@
+2007-02-19  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlReflectionImporter.cs : CanBeNull() should return true when the
+         argument is generic nullable value type.
+
 2007-02-19  Atsushi Enomoto  <atsushi@ximian.com>
 
        * TypeData.cs, MapCodeGenerator.cs, XmlMemberMapping.cs,
index b44d8bb51d8a7bc0c91bfab8e1240ee6d3f6ec28..00ee7c5f7835575b30b212a2b0198c058310e0d7 100644 (file)
@@ -1079,7 +1079,7 @@ namespace System.Xml.Serialization {
                        if (type.Type == typeof (XmlQualifiedName))
                                return false;
 #endif
-                       return !type.Type.IsValueType;
+                       return !type.Type.IsValueType || type.IsNullable;
                }
                
                public void IncludeType (Type type)
index eb78acc033debafa116a36b03fc140b0a8760a1e..8af2c1a78a010409647ad254d0aa3ae3f2d302fc 100644 (file)
@@ -1,3 +1,7 @@
+2007-02-19  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlReflectionImporterTests.cs : added test for nullable int import.
+
 2007-02-14  Atsushi Enomoto  <atsushi@ximian.com>
 
        * XmlSerializerTests.cs : added HasFieldSpecifiedButIrrelevant().
index 02cf79f7feb609649f43ed9ccc6edee588e64224..6d7a4ac7457d10b931c78e6b18c5ac6688917769 100644 (file)
@@ -1539,6 +1539,22 @@ namespace MonoTests.System.XmlSerialization
                }
 
 #if NET_2_0
+
+               [Test]
+               public void ImportNullableInt ()
+               {
+                       XmlReflectionImporter imp = new XmlReflectionImporter ();
+                       XmlTypeMapping map = imp.ImportTypeMapping (typeof (int?));
+                       XmlSchemas schemas = new XmlSchemas ();
+                       XmlSchemaExporter exp = new XmlSchemaExporter (schemas);
+                       exp.ExportTypeMapping (map);
+                       XmlSchema schema = schemas [0];
+                       XmlSchemaElement el = schema.Items [0] as XmlSchemaElement;
+                       Assert.AreEqual ("int", el.Name, "#1");
+                       Assert.AreEqual (new XmlQualifiedName ("int", XmlSchema.Namespace), el.SchemaTypeName, "#2");
+                       Assert.AreEqual (true, el.IsNillable, "#3");
+               }
+
                [Test]
                public void ImportNullableContainer ()
                {