Большая проблема с памятью в c #.Мое приложение получает html сообщения электронной почты, анализирует значения src изображений, которые являются вложениями, и изменяет эти значения src на другие.Это прекрасно работает.Проблема в том, что я должен сохранить результирующий HTML в списке sharepoint.и это так, но когда я вижу контент в списке sharepoint, он не показывает электронную почту, только некоторую его часть.Я не знаю, если поток памяти вообще не сохраняет содержимое, или строка сохраняет результат, не имеет достаточной емкости для сохранения того, что хранит поток памяти.Если у кого-то есть идеи, пожалуйста, напишите их!
string SRC = "";
int indice = 0;
//Console.WriteLine(body);
HtmlDocument email = new HtmlDocument();
email.LoadHtml(body);
Console.WriteLine("bodylength: " + body.Length);//original length
foreach (HtmlNode img in email.DocumentNode.SelectNodes("//img"))
{
SRC = img.GetAttributeValue("src", null);
for (int i = 0; i < contentIDS.Count; i++)
{
if (SRC.Equals(contentIDS[i].ToString()))
{
//Console.WriteLine("contents" + contentIDS[i].ToString());
indice = i;
break;
}
}
img.SetAttributeValue("src", urls[indice].ToString());
Console.WriteLine(img.GetAttributeValue("src", null));
}
//se guarda en memoria los cambios hechos en el html y se retorna e tipo string el html con los cambios realizados
MemoryStream memoryStream = new MemoryStream();
email.Save(memoryStream);
//memoryStream.SetLength(body.Length);
memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
StreamReader streamReader = new StreamReader(memoryStream);
return streamReader.ReadToEnd();//this is then store in a string when i call this method. The lenght of that string is much much smaller than the original one.