Byte [] в XML с .NET/С#

76
9

У меня есть XML, хранящийся в базе данных в виде байтового массива (byte []). Теперь мне нужно получить этот массив байтов из базы данных, которую я успешно делаю, и передать ее в XDocument следующим образом:


public Dictionary<string, string> ReadFromByte(byte[] UserData, string toplevelnode, string firstattribute, string secondattribute)
{
XDocument doc = XDocument.Load(UserData);
Dictionary<string, string> dictionary = doc.Descendants(toplevelnode).ToDictionary(x => x.Attribute(firstattribute).Value,
x => x.Attribute(secondattribute).Value);
return dictionary;
}

Этот код отлично работает, если я передаю XDocument файл на сервере в формате XML. Однако это не работает, если я передаю массив byte [].


Любая подсказка о том, как мне добавить массив байтов [] обратно в XML, будет с благодарностью.


Спасибо.

спросил(а) 2021-01-19T17:39:03+03:00 2 месяца, 3 недели назад
1
Решение
106

  using (var stream = new MemoryStream(UserData, false))
{
var doc = Xdocument.Load(stream);

...
}

Как и @int3, мы должны знать enocoding (UTF8/16 и т.д.), которые вы использовали для хранения документа в базе данных.

ответил(а) 2021-01-19T17:39:03+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема