Nope 2.0 framework... last time I played with IXmlSerializable was with the 1.1 framework a couple of years back, but I don't think my usage patterns were similar (not using the same type twice in a container class) as I didn't run into problems... I've tried expelling a schema as well, but that doesn't seem to have any effect.
I'll probably have to log the generated serialization code and trace it manually... :( Chez, - Alex > -----Original Message----- > From: Discussion of advanced .NET topics. [mailto:ADVANCED- > [EMAIL PROTECTED] On Behalf Of Patrick Steele > Sent: Wednesday, 6 September 2006 10:12 a.m. > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM > Subject: Re: [ADVANCED-DOTNET] IXmlSerializable problem... > > 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 =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com