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 DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com