[Mono-list] XmlSerializer with Dictionary

Colin JN Breame colin at breame.net
Thu Jan 19 18:25:08 EST 2006


Hi Gert,

I've added a bugzilla but I couldn't assign it to you (invalid user or 
something like that).  Anyway, the bugzilla number is: 77311

Colin

On Thursday 19 January 2006 19:53, Gert Driesen wrote:
> Hi Colin,
>
> I'm looking into fixing quite some (compatibility) issues in XmlSerializer
> (and XmlSchemaExporter, XmlReflectionImporter, SoapReflectionImporter,
> ...).
>
> Please submit a bug report for this and feel free to assign it to me.
>
> Gert
>
> > -----Original Message-----
> > From: mono-list-bounces at lists.ximian.com
> > [mailto:mono-list-bounces at lists.ximian.com] On Behalf Of
> > Colin JN Breame
> > Sent: woensdag 18 januari 2006 22:32
> > To: mono-list at lists.ximian.com
> > Subject: [Mono-list] XmlSerializer with Dictionary
> >
> > Hello,
> >
> > When I try to xml serialise a generic dictionary (e.g.
> > Dictionary<string,string>), I get the exception:
> >
> > System.InvalidOperationException: You must implement a
> > default accessor on
> > System.Collections.Generic.Dictionary`2[snip] because it
> > inherits from
> > ICollection
> >
> > This looks like it could be a bug but then again I'm not even
> > sure it is
> > possible to serialise a generic dictionary.  Any pointers would be
> > appreciated.
> >
> > Cheers,
> > Colin
> >
> >
> > test program:
> >
> > using System.Collections.Generic;
> > using System.IO;
> > using System.Xml.Serialization;
> >
> > public class main_t {
> >   public static void Main() {
> >     Dictionary<string, string> test = new Dictionary<string,
> > string>();
> >     StreamWriter writer = new StreamWriter("output");
> >
> >     XmlSerializer serialiser = new
> > XmlSerializer(typeof(Dictionary<string,
> >                                                         string>));
> >     serialiser.Serialize(writer, test);
> >   }
> > }
> >
> >
> > exception:
> >
> > Unhandled Exception: System.InvalidOperationException: You
> > must implement a
> > default accessor on
> > System.Collections.Generic.Dictionary`2[[System.String,
> > mscorlib, Version=2.0.0.0, Culture=neutral,
> > PublicKeyToken=b77a5c561934e089],
> > [System.String, mscorlib, Version=2.0.0.0, Culture=neutral,
> > PublicKeyToken=b77a5c561934e089]] because it inherits from ICollection
> > in <0x001f7> System.Xml.Serialization.TypeData:get_ListItemType ()
> > in <0x0001f> System.Xml.Serialization.TypeData:get_ListItemTypeData ()
> > in <0x00145> System.Xml.Serialization.TypeData:.ctor
> > (System.Type type,
> > System.String elementName, Boolean isPrimitive,
> > System.Xml.Serialization.TypeData mappedType,
> > System.Xml.Schema.XmlSchemaPatternFacet facet)
> > in <0x00019> System.Xml.Serialization.TypeData:.ctor
> > (System.Type type,
> > System.String elementName, Boolean isPrimitive)
> > in <0x0032b>
> > System.Xml.Serialization.TypeTranslator:GetTypeData (System.Type
> > type, System.String xmlDataType)
> > in <0x0000c>
> > System.Xml.Serialization.TypeTranslator:GetTypeData (System.Type
> > type)
> > in <0x0005a>
> > System.Xml.Serialization.XmlReflectionImporter:ImportTypeMapping
> > (System.Type type, System.Xml.Serialization.XmlRootAttribute root,
> > System.String defaultNamespace)
> > in <0x0009d> System.Xml.Serialization.XmlSerializer:.ctor
> > (System.Type type,
> > System.Xml.Serialization.XmlAttributeOverrides overrides,
> > System.Type[]
> > extraTypes, System.Xml.Serialization.XmlRootAttribute root,
> > System.String
> > defaultNamespace)
> > in <0x00015> System.Xml.Serialization.XmlSerializer:.ctor
> > (System.Type type)
> >
> >
> >
> >
> >
> > _______________________________________________
> > Mono-list maillist  -  Mono-list at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-list

-- 
Colin JN Breame
Freelance IT Consulting
e: colin at breame.net
t: +44(0)207 2630931
m: 0793 147 0091
w: http://breame.net
j: colinbreame at jabber.org


More information about the Mono-list mailing list