Все,
У меня есть следующий код для преобразования XML-документа с использованием XSLT.
Проблема в том, что, когда размер XML-документа составляет около 12 МБ, в C # не хватает памяти.
Есть ли другой способ выполнить преобразование, не занимая столько памяти?
public string Transform(XPathDocument myXPathDoc, XslCompiledTransform myXslTrans)
{
try
{
var stm = new MemoryStream();
myXslTrans.Transform(myXPathDoc, null, stm);
var sr = new StreamReader(stm);
return sr.ReadToEnd();
}
catch (Exception e)
{
//Log the Exception
}
}
Вот трассировка стека:
at System.String.GetStringForStringBuilder(String value, Int32 startIndex, Int32 length, Int32 capacity)
at System.Text.StringBuilder.GetNewString(String currentString, Int32 requiredLength)
at System.Text.StringBuilder.Append(Char[] value, Int32 startIndex, Int32 charCount)
at System.IO.StreamReader.ReadToEnd()
at Transform(XPathDocument myXPathDoc, XslCompiledTransform myXslTrans)