Yes I did. I wrestled with it for a few hours and couldn't come up with any reason. I assume you're using .NET 1.1 and it should be noted that IXmlSerializable is unsupported in 1.1 (it's documented in 2.0 so I hope that means it's now supported for 2.0).
My needs were fairly simple so I resorted to creating a derived Hashtable that implemented IXmlSerializable and controlled the XML writing myself. It worked for my needs but was definitely not a "generic" solution. -- Patrick Steele Microsoft .NET MVP http://weblogs.asp.net/psteele -----Original Message----- From: Discussion of advanced .NET topics. [mailto:[EMAIL PROTECTED] On Behalf Of Alex Henderson Sent: Tuesday, September 05, 2006 3:16 AM To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM Subject: [ADVANCED-DOTNET] IXmlSerializable problem... I've implemented a few classes with custom XML serialization. work's fine, but when a put more then one instance of that class into a container, then serialization works, but when Deserializing only the first instance is worked on - at which point all processing for the remaining elements is abandoned... I'm sure it's probably easy to fix, anyone come across this before? Here's a test fixture to demonstrate my problem: [TestFixture] public class SettingsConverterFixture { [Test] public void MyContainerConvert() { XmlSerializer serializer = new XmlSerializer(typeof(MyContainer)); MemoryStream stream = new MemoryStream(); MyContainer original = new MyContainer(); original.Value1 = new CustomValue("1"); original.Value2 = new CustomValue("2"); Assert.AreEqual("1", original.Value1.Value); Assert.AreEqual("2", original.Value2.Value); serializer.Serialize(stream, original); stream.Seek(0, SeekOrigin.Begin); MyContainer reloaded = (MyContainer)serializer.Deserialize(stream); Assert.AreEqual("1", reloaded.Value1.Value); Assert.IsNotNull(reloaded.Value2); // blows up here Assert.AreEqual("2", reloaded.Value2.Value); } } public class MyContainer { public CustomValue Value1; public CustomValue Value2; } public class CustomValue : IXmlSerializable { private string _value; public string Value { get { return _value; } } public CustomValue(string value) { _value = value; } public CustomValue() { } #region IXmlSerializable Members public XmlSchema GetSchema() { return null; } public void ReadXml(System.Xml.XmlReader reader) { _value = reader.ReadString(); } public void WriteXml(System.Xml.XmlWriter writer) { writer.WriteString(_value); } #endregion } =================================== This list is hosted by DevelopMentorR http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com