Also für eine Weile habe ich XslCompiledTransform verwendet, weil das ist, was Microsoft sagt mir, ich muss verwenden, wie XslTransform veraltet ist. Kürzlich musste ich es mit einer Transformation verwenden, die fast 100.000 Zeilen hat (generiertes xsl - natürlich). Als ich meine Anwendung verwendete, war ich schockiert, dass ein OOM auftauchte. Egal, was ich tat - OOM ist alles, was ich bekomme... Zum Spaß ging ich zurück zu XslTransform... Genau den gleichen Code ändern XslCompiledTransform zu XslTransform und es funktioniert gut...
Kann mir jemand sagen, wie man um die OOM arbeiten - gibt es einige "swtich" auf XslCompiledTransform? Ich weiß nicht, wie Sie in der Lage sein, das genaue Problem zu replizieren, aber wenn jemand Antworten hat, sind sie sehr zu schätzen.
Danke - Code unten:
Werke:
XslTransform myXslTransform = new XslTransform();
myXslTransform.Load(xslWith100ThousandLines);
MemoryStream m = new MemoryStream();
myXslTransform.Transform(myXPathDocument, null, m);
m.Flush();
m.Close();
Scheitert mit OOM
XslCompiledTransform cxslt = new XslCompiledTransform();
cxslt.Load(xslWith100ThousandLines);
MemoryStream m = new MemoryStream();
cxslt.Transform(myXPathDocument, null, m);
m.Flush();
m.Close();