Так что какое-то время я использовал XslCompiledTransform, потому что это то, что Microsoft говорит мне, что мне нужно использовать, поскольку XslTransform устарела. Недавно мне пришлось использовать его с преобразованием, имеющим почти 100 000 строк (сгенерированный xsl - конечно). Когда я использовал свое приложение, я был шокирован, увидев всплывающее окно OOM. Неважно, что я сделал - OOM - это все, что я получаю ... Для хихиканья я вернулся к XslTransform ... Тот же самый точный код, меняющий XslCompiledTransform на XslTransform, и он отлично работает ...
Может кто-нибудь сказать мне, как работать с OOM - есть ли какой-нибудь swtich на XslCompiledTransform? Я не знаю, как вы сможете воспроизвести точную проблему, но если у кого-то есть какие-либо ответы, они очень ценятся.
Спасибо - код ниже:
Работает:
XslTransform myXslTransform = new XslTransform();
myXslTransform.Load(xslWith100ThousandLines);
MemoryStream m = new MemoryStream();
myXslTransform.Transform(myXPathDocument, null, m);
m.Flush();
m.Close();
Сбой с OOM
XslCompiledTransform cxslt = new XslCompiledTransform();
cxslt.Load(xslWith100ThousandLines);
MemoryStream m = new MemoryStream();
cxslt.Transform(myXPathDocument, null, m);
m.Flush();
m.Close();