public override void Serialize(XmlTextWriter xml) { xml.WriteStartElement("array"); xml.WriteAttributeString("id", ID.ToString()); xml.WriteAttributeString("type", Type.FullName); //int[] dimensions = new int[items.Rank]; //foreach (ObjectBase element in Items) //{ // xml.WriteStartElement("element"); // element.SerializeReference(xml); // xml.WriteEndElement(); //} Array arr = Items; int rank; int[] dimensions; int[] lowerBounds; int[] upperBounds; SetupLoopData(arr, out rank, out dimensions, out lowerBounds, out upperBounds); do { ObjectBase element = (ObjectBase)arr.GetValue(dimensions); xml.WriteStartElement("element"); xml.WriteAttributeString("index", dimensions.ToString()); element.SerializeReference(xml); xml.WriteEndElement(); } while (IncreaseDimension(dimensions, lowerBounds, upperBounds, rank - 1)); xml.WriteEndElement(); }
public void Serialize(XmlTextWriter xml) { xml.WriteStartElement("field"); xml.WriteAttributeString("name", Name); Value.SerializeReference(xml); xml.WriteEndElement(); }
public void Serialize(Stream output, object graph) { BuildSerilizationGraph(graph); XmlTextWriter xml = new XmlTextWriter(output, Encoding.Default); xml.Formatting = Formatting.Indented; xml.Indentation = 1; xml.IndentChar = '\t'; xml.WriteStartElement("document"); xml.WriteStartElement("root-object"); Root.SerializeReference(xml); xml.WriteEndElement(); xml.WriteStartElement("objects"); foreach (ObjectBase item in allObjects) { item.Serialize(xml); } xml.WriteEndElement(); xml.WriteEndElement(); xml.Flush(); }