[Mono-bugs] [Bug 77531][Nor] New - [PATCH] TypeData fixes for Array/List types

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Sat Feb 11 13:56:45 EST 2006


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by gert.driesen at pandora.be.

http://bugzilla.ximian.com/show_bug.cgi?id=77531

--- shadow/77531	2006-02-11 13:56:45.000000000 -0500
+++ shadow/77531.tmp.17802	2006-02-11 13:56:45.000000000 -0500
@@ -0,0 +1,38 @@
+Bug#: 77531
+Product: Mono: Class Libraries
+Version: 1.1
+OS: 
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: Sys.XML
+AssignedTo: lluis at ximian.com                            
+ReportedBy: gert.driesen at pandora.be               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: [PATCH] TypeData fixes for Array/List types
+
+I've attached a patch the fixes the following issues in TypeData (which 
+affects XmlReflectionImporter / SoapReflectionImporter):
+
+- If a type implements IDictionary, a NotSupportedException must be 
+thrown.
+
+- If a type implements ICollection, then an Add method must exist which 
+takes a single argument of a type to which the listitem type is 
+assignable (meaning a base type or an interface that it implements). If 
+such a method does not exist, then throw an InvalidOperationException.
+
+- If a type implements IEnumerable, then the listitem type is determined 
+by the type of the Current property of the (IEnumerator) type returned by 
+the GetEnumerator() method or the private implementation of 
+IEnumerable.GetEnumerator(). If there's no public Current property on the 
+IEnumerator, then System.Object it assumed as listitem type. Similar as 
+for types implementing ICollection, an Add method must exist which takes 
+a single argument of a type to which the listitem type is assignable 
+(meaning a base type or an interface that it implements). If such a 
+method does not exist, then throw an InvalidOperationException.


More information about the mono-bugs mailing list