所以有一段时间我一直在使用 XslCompiledTransform,因为这是微软告诉我需要使用的,因为 XslTransform 已被弃用。最近我不得不将它与具有近 100,000 行的转换一起使用(当然是生成的 xsl)。当我使用我的应用程序时,我很震惊地看到一个 OOM 弹出。不管我做了什么 - OOM 就是我得到的一切......为了咯咯笑,我回到 XslTransform...... 将 XslCompiledTransform 更改为 XslTransform 的完全相同的代码,它工作正常......
谁能告诉我如何解决 OOM - XslCompiledTransform 上是否有一些“swtich”?我不知道您将如何复制确切的问题,但如果有人有任何答案,他们将不胜感激。
谢谢 - 下面的代码:
作品:
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();