そのため、しばらくの間、XslCompiledTransform を使用してきました。これは、XslTransform が非推奨になったため、使用する必要があると Microsoft が指示したためです。最近、ほぼ 100,000 行 (生成された xsl - もちろん) の変換で使用する必要がありました。アプリケーションを使用したとき、OOM ポップアップが表示されてショックを受けました。私が何をしたとしても-OOMだけが私が得るすべてです...くすくす笑いのために、私はXslTransformに戻りました... XslCompiledTransformをXslTransformに変更する同じ正確なコードで、正常に動作します...
OOM を回避する方法を教えてもらえますか? 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();