Here is an example using a MemoryStream
Save the XML data using a MemoryStream for base64, encode the data and write it to a file.
using (var ms = new MemoryStream()) { // Memory Stream using (XmlWriter writer = XmlWriter.Create(ms,settings)) { writer.WriteStartDocument(); writer.WriteStartElement("Database"); writer.WriteStartElement("Entry"); writer.WriteAttributeString("key", "value"); writer.WriteEndElement(); writer.WriteEndElement(); writer.Flush(); writer.Close(); // XML Data (Debug) Console.WriteLine(new UTF8Encoding().GetString(ms.ToArray())); // Pre encoding hex (Debug) Console.WriteLine(BitConverter.ToString(ms.ToArray())); string s = Convert.ToBase64String(ms.ToArray()); Console.WriteLine(s); // (Debug) // Post encoding File.WriteAllText(@"C:\Temp\A.enc", s); } }
Read the file back
// Read encoded file back to xml string enc_text = File.ReadAllText(@"C:\Temp\A.enc"); Console.WriteLine(enc_text); // (Debug) // Pre encoding hex byte[] mem_bytes = Convert.FromBase64String(enc_text); Console.WriteLine(BitConverter.ToString(mem_bytes)); // (Debug) // XML Data Console.WriteLine(new UTF8Encoding().GetString(mem_bytes)); // Read byte array into Reader using (var stream = new MemoryStream(mem_bytes)) { using (XmlReader reader = XmlReader.Create(stream)) { // Use reader as desired } }
source share