Hi, I don't think you can serialize hashtables (easily) to XML:
http://blogs.msdn.com/psheill/archive/2005/04/09/406823.aspx http://codebetter.com/blogs/geoff.appleby/archive/2004/11/13/32005.aspx I did something similar a while back in mono with ArrayLists and that worked fine: [Serializable] public class SearchList { [XmlElement(typeof(SearchType), ElementName = "SearchType")] public ArrayList Items = new ArrayList(); etc... but I remember reading back then that hastables were a pain... Regards, --chris On Wed, 11 May 2005, Ricardo Gladwell wrote: > I'm getting the following exception when I attempt to deserialize some > objects in my application using System.Xml.Serialization: > > System.InvalidOperationException: The type WebPuppy.Model.Site was not > expected. Use the XmlInclude or SoapInclude attribute to specify types > that are not known statically. > > I've been careful to include all the relevant objects using the > XmlIncludeAttribute so I can't figure out why the XML serializer is not > properly finding the Site object. See code fragment below: > > using System.Collections; > using System.IO; > using System.Xml.Serialization; > > public class Test { > public static void Main () { > Configuration configuration = new Configuration(); > Site site = new Site(); > site.Id = "id"; > configuration.Sites.Add( site ); > XmlSerializer serializer = new XmlSerializer (typeof > (Configuration)); > using (FileStream fs = new FileStream ("test.xml", > FileMode.Create)) { > serializer.Serialize (fs, configuration); > } > } > } > > public class Configuration { > > Folder sites = new Folder(); > > public Folder Sites > { > get { > return sites; > } > set { > this.sites = value; > } > } > > } > > [XmlInclude (typeof (Folder))] > [XmlInclude (typeof (Site))] > public abstract class Artifact { > public string Id; > } > > public class Folder : Artifact, IEnumerable > { > private Hashtable artifacts = new Hashtable (); > > public IEnumerator GetEnumerator () > { > return artifacts.Values.GetEnumerator (); > } > > public void Add(object o) { > Artifact artifact = (Artifact) o; > artifacts[artifact.Id] = (Artifact) artifact; > } > } > > public class Site : Folder > { > } > _______________________________________________ > Mono-list maillist - Mono-list@lists.ximian.com > http://lists.ximian.com/mailman/listinfo/mono-list > _______________________________________________ Mono-list maillist - Mono-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-list