[Mono-bugs] [Bug 430759] New: InvalidOperationException when XmlSerializing a generic collection ( You must implement a default accessor on <MyCollection> because it inherits from ICollection)

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Sep 29 15:54:16 EDT 2008


https://bugzilla.novell.com/show_bug.cgi?id=430759


           Summary: InvalidOperationException when XmlSerializing a generic
                    collection (You must implement a default accessor on
                    <MyCollection> because it inherits from ICollection)
           Product: Mono: Class Libraries
           Version: 1.9
          Platform: x86
        OS/Version: Ubuntu
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Sys.XML
        AssignedTo: atsushi at ximian.com
        ReportedBy: mail at danellis.co.uk
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


Created an attachment (id=242375)
 --> (https://bugzilla.novell.com/attachment.cgi?id=242375)
Example application

The following exception is raised when serializing a collection to XML. 
However the issue only occurs if the object is a generic collection without an
'integer' index:-

"System.InvalidOperationException: You must implement a default accessor on
<MyCollection> because it inherits from ICollection"

Example code is attached.  It has been compiled with both gmcs (mono) and csc
(windows).  The .NET compiled version will successfully write the out.xml file.
 The mono compiled version will display the unhandled exception.

Looking at the mono code online, I think the issue is in:-

/trunk/mcs/class/System.XML/System.Xml.Serialization/TypeData.cs

In the method 'GetIndexerProperty'.  It seems that GetIndexerProperty is
incorrectly looking for an int type for an indexer.  Whereas the example
application attached only has a string indexer.

As a hack I am able to add an int indexer which always returns null.  This then
works and the object is correctly serialized.  Thus proving that it doesn't
actually require the indexer to be an int.


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list