У меня есть внешний веб-сервис, который возвращает файлы в байтовом массиве (маленький, большой файл размером 20 МБ), его необходимо преобразовать в строку base64 и включить в файл XML
Encode
код, который я использовал для преобразования байтового массива в base64:
Convert.ToBase64String(bytearray, 0, bytearray.Length, _
Base64FormattingOptions.InsertLineBreaks)
ниже приведена фактическая конструкция xml, которую я использую Linq to XML.
attachment = From Item In cpd _
Select New XElement("attachment", _
New XAttribute("id", Item.UniqueID), _
New XElement("attachmentDocumentInformation", _
New XElement("actor", New XAttribute("reference", Item.AttchRefId)), _
New XElement("documentDescription", _
New XElement("documentTitle", Item.Document), _
New XElement("documentType", "A"), _
New XElement("sequence", Item.Sequence))), _
New XElement("documentContent", _
New XAttribute("contentEncoding", "base64"), _
New XAttribute("id", "DocumentContent" + Item.UniqueID), _
New XAttribute("mimeType", Item.mimeType), _
Convert.ToBase64String(Item.Content, 0, Item.Content.Length, _
Base64FormattingOptions.InsertLineBreaks)))
Decode
и я использую преобразование frombase64 для полученного XML-файла
Convert.FromBase64String(documentContentinBase64)
работает нормально, когда размер файла меньше, а при преобразовании большого файла возвращается «Такой интерфейс не поддерживается».
У меня два вопроса:
- Каков наилучший способ конвертировать большие файлы в tobase64 / frombase64?
- после преобразования байтового массива в base64, что является лучшим способом создания XML-файла с документами base64 в нем. У кого-нибудь есть код?
Спасибо