Я уже подготовил много публикаций (например, this one) на SO, которые объясняют, как записывать двоичные данные в XML с помощью метода XMLWriter.WriteBase64.Тем не менее, я еще не видел тот, который объясняет, как затем читать данные base64.Есть ли другой встроенный метод?Мне также трудно найти надежную документацию по этому вопросу.
Вот файл XML, который я использую:
<?xml version="1.0"?>
<pstartdata>
<pdata>some data here</pdata>
emRyWVZMdFlRR0FFQUNoYUwzK2dRUGlBS1ZDTXdIREF ..... and much, much more.
</pstartdata>
Код C #, который создает этот файл (.Net 4.0):
FileStream fs = new FileStream(Path.GetTempPath() + "file.xml", FileMode.Create);
System.Xml.XmlTextWriter w = new System.Xml.XmlTextWriter(fs, null);
w.Formatting = System.Xml.Formatting.None;
w.WriteStartDocument();
w.WriteStartElement("pstartdata");
#region Main Data
w.WriteElementString("pdata", "some data here");
// Write the binary data
w.WriteBase64(fileData[1], 0, fileData[1].Length);
#endregion (End) Main Data (End)
w.WriteEndDocument();
w.Flush();
fs.Close();
Теперь, для настоящего вызова ... Хорошо, так что, как вы все можете видеть, вышесказанное было написано в .Net 4.0.К сожалению, файл XML должен быть прочитан приложением, использующим .Net 2.0.Чтение в двоичных данных (база 64) оказалось довольно сложной задачей.
Код для чтения в данных XML (.Net 2.0):
System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();
xDoc.LoadXml(xml_data);
foreach (System.Xml.XmlNode node in xDoc.SelectNodes("pstartdata"))
{
foreach (System.Xml.XmlNode child in node.ChildNodes)
{
MessageBox.Show(child.InnerXml);
}
}
Что бы янужно добавить для чтения в базе данных 64-х (показано выше)?