1
我有下面的代碼片段XmlCompiledTransform.Load拋出一個NullReferenceException間歇
this.xslCompiledTransform = new XslCompiledTransform();
// initialize xsl transform
using (Stream xsltStream = currentAssembly.GetManifestResourceStream(this.TransformationFile))
using (XmlReader schemaReader = XmlReader.Create(xsltStream))
{
XsltSettings settings = new XsltSettings() { EnableScript = true };
this.xslCompiledTransform.Load(schemaReader, settings, null);
}
它有時拋出NullReferenceExcecption並且有時它工作在同一個XSLT文件。
請問你能告訴上述代碼有什麼問題嗎?任何幫助將不勝感激。
下面是堆棧跟蹤
Object reference not set to an instance of an object.
Stack Trace:
at System.Xml.Xsl.IlGen.XmlILVisitor.VisitFor(QilIterator ndFor)
at System.Xml.Xsl.IlGen.XmlILVisitor.Visit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd, Type itemStorageType, Boolean isCached)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisitEnsureStack(QilNode nd, Type itemStorageType, Boolean isCached)
at System.Xml.Xsl.IlGen.XmlILVisitor.VisitXPathNodeValue(QilUnary ndVal)
at System.Xml.Xsl.IlGen.XmlILVisitor.Visit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd, Type itemStorageType, Boolean isCached)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisitEnsureStack(QilNode nd, Type itemStorageType, Boolean isCached)
at System.Xml.Xsl.IlGen.XmlILVisitor.VisitXsltInvokeEarlyBound(QilInvokeEarlyBound ndInvoke)
at System.Xml.Xsl.IlGen.XmlILVisitor.Visit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd, Type itemStorageType, Boolean isCached)
at System.Xml.Xsl.IlGen.XmlILVisitor.VisitTextCtor(QilUnary ndText, Boolean disableOutputEscaping)
at System.Xml.Xsl.IlGen.XmlILVisitor.Visit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.VisitLoop(QilLoop ndLoop)
at System.Xml.Xsl.IlGen.XmlILVisitor.Visit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd, Type itemStorageType, Boolean isCached)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.VisitElementCtor(QilBinary ndElem)
at System.Xml.Xsl.IlGen.XmlILVisitor.Visit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd, Type itemStorageType, Boolean isCached)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.VisitElementCtor(QilBinary ndElem)
at System.Xml.Xsl.IlGen.XmlILVisitor.Visit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd, Type itemStorageType, Boolean isCached)
at System.Xml.Xsl.IlGen.XmlILVisitor.VisitSequence(QilList ndSeq)
at System.Xml.Xsl.IlGen.XmlILVisitor.Visit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd, Type itemStorageType, Boolean isCached)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.VisitElementCtor(QilBinary ndElem)
at System.Xml.Xsl.IlGen.XmlILVisitor.Visit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd, Type itemStorageType, Boolean isCached)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.VisitConditional(QilTernary ndCond)
at System.Xml.Xsl.IlGen.XmlILVisitor.Visit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd, Type itemStorageType, Boolean isCached)
at System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisit(QilNode nd)
at System.Xml.Xsl.IlGen.XmlILVisitor.Function(QilFunction ndFunc)
at System.Xml.Xsl.IlGen.XmlILVisitor.Visit(QilExpression qil, GenerateHelper helper, MethodInfo methRoot)
at System.Xml.Xsl.XmlILGenerator.Generate(QilExpression query, TypeBuilder typeBldr)
at System.Xml.Xsl.XslCompiledTransform.LoadInternal(Object stylesheet, XsltSettings settings, XmlResolver stylesheetResolver)
我得到了不同的錯誤enableDebug = true - InvalidOperationException'本地變量作用域未正確關閉。 堆棧跟蹤: 在System.Reflection.Emit.MethodBuilder.CreateMethodBodyHelper(IL的ILGenerator) 在System.Reflection.Emit.TypeBuilder.CreateTypeNoLock() 在System.Reflection.Emit.TypeBuilder.CreateType() 的系統。 Xml.Xsl.IlGen.XmlILModule.BakeMethods() 在System.Xml.Xsl.XmlILGenerator.Generate(QilExpression查詢,TypeBuilder typeBldr) 在System.Xml.Xsl.XslCompiledTransform.LoadInternal(對象樣式,XsltSettings設置的XmlResolver stylesheetResolver) – malay