Я использую библиотеку System.Security.Cryptography для шифрования и дешифрования XML-файлов.Хотя недавно я получал исключения OOM (Out of Memory) при попытке расшифровать файл размером 75 МБ.Вот код, который я использую:
using System.Security.Cryptography.Xml;
...
public static XmlDocument DecryptIntoXmlDoc(string filename)
{
//Decrypt the XML
XmlDocument xmldoc = new XmlDocument();
EncryptedXml exml = new EncryptedXml(xmldoc);
TripleDESCryptoServiceProvider ekey = new TripleDESCryptoServiceProvider();
ASCIIEncoding encoding = new ASCIIEncoding();
ekey.Key = encoding.GetBytes(GetMasterKey());
exml.AddKeyNameMapping("ekey", ekey);
xmldoc.Load(filename);
// -- THROWS THE OOM ERROR --
exml.DecryptDocument();
//Clear exml
exml = null;
return xmldoc;
}
Как только вызывается .DecryptDocument (), я получаю следующую ошибку:
Exception of type 'System.OutOfMemoryException' was thrown.
Я не смог никого найтиеще возникла эта проблема, но я читал, что если теги xml не имеют правильного имени / вложенности, файл может быть очень большим при загрузке в память.Уменьшит ли размер переименование моих тегов XML на более короткие имена?Есть ли способ вложить теги XML для уменьшения размера файла?
Могу ли я что-нибудь еще сделать?