public void ToStringTest() { StringWriter writer = new StringWriter(); XmlTextWriter xmlWriter = NiniWriter(writer); WriteSection(xmlWriter, "Pets"); WriteKey(xmlWriter, "cat", "Muffy"); WriteKey(xmlWriter, "dog", "Rover"); xmlWriter.WriteEndDocument(); xmlWriter.Close(); StringReader reader = new StringReader(writer.ToString()); XmlTextReader xmlReader = new XmlTextReader(reader); XmlConfigSource source = new XmlConfigSource(xmlReader); string eol = Environment.NewLine; string compare = "<?xml version=\"1.0\" encoding=\"utf-16\"?>" + eol + "<Nini>" + eol + " <Section Name=\"Pets\">" + eol + " <Key Name=\"cat\" Value=\"Muffy\" />" + eol + " <Key Name=\"dog\" Value=\"Rover\" />" + eol + " </Section>" + eol + "</Nini>"; Assert.AreEqual(compare, source.ToString()); }
protected void RecordConfiguration(IConfigSource originalConfig) { m_xtw.WriteStartElement(ConfigElement); // Write out game configuration // We have to transfer this to an xml document to get xml XmlConfigSource intermediateConfig = new XmlConfigSource(); intermediateConfig.Merge(originalConfig); // This is a roundabout way to get rid of the top xml processing directive that config.ToString() gives // us XmlDocument outputDoc = new XmlDocument(); outputDoc.LoadXml(intermediateConfig.ToString()); // Remove the other document's processing instruction outputDoc.RemoveChild(outputDoc.FirstChild); outputDoc.WriteTo(m_xtw); m_xtw.WriteStartElement(RegionsElement); // Write region names, positions and IDs foreach (Scene scene in m_controller.Scenes) { m_xtw.WriteStartElement(RegionElement); m_xtw.WriteAttributeString("Name", scene.RegionInfo.RegionName); m_xtw.WriteAttributeString("X", scene.RegionInfo.RegionLocX.ToString()); m_xtw.WriteAttributeString("Y", scene.RegionInfo.RegionLocY.ToString()); m_xtw.WriteEndElement(); } m_xtw.WriteEndElement(); m_xtw.WriteEndElement(); }