Base64 - хороший способ сделать это. Это способ преобразования двоичных данных в текст, который вы можете сохранить.
Запись:
public void WriteBinaryToXElement( XElement element, byte[] data )
=> element.Value = Convert.ToBase64String( data, 0, data.length );
Чтение:
public byte[] ReadBinaryFromXElement( XElement element )
=> Convert.FromBase64String( element.Value );
Как использовать:
// load XML
XElement rootNode = XElement.Load( @"Path\to\XML" );
// find nodes
foreach ( var binaryNode in XElement.Element( "DataNodes" ).Elements() )
{
// read data
byte[] data = ReadBinaryFromXElement( binaryNode );
// do stuff with data
// save back to XML
WriteBinaryToXElement( binaryNode, data );
}
Я не совсем уверен, что это хорошая идея. почему бы просто не сохранить двоичные данные в двоичных файлах?