我收到的错误是我过去没有遇到的(搜索后无法找到解决方案)。
错误消息:XslTransformException未被用户代码处理:无法找到与命名空间'uri:PhysKare.Framework.Authentication.IUserAuthenticate'关联的脚本或扩展对象。
错误详情:
at System.Xml.Xsl.Runtime.XmlQueryContext.InvokeXsltLateBoundFunction(String name, String namespaceUri, IList`1[] args)
at <xsl:template match="/">(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)
at Root(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)
at Execute(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)
at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlSequenceWriter results)
at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer)
at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, XmlWriter results, XmlResolver documentResolver)
at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, XmlWriter results)
有任何想法如何解决此问题?
答案 0 :(得分:1)
您的XSLT在命名空间uri:PhysKare.Framework.Authentication.IUserAuthenticate
中使用自定义函数,并且您没有将实现这些函数的对象传递给XSLT处理器 - 即您应该执行以下操作:
XsltArgumentList args = new XsltArgumentList();
args.AddExtensionObject("uri:PhysKare.Framework.Authentication.IUserAuthenticate", new PhysKare());
compiledXslt.Transfor(source, args, dest)
其中PhysKare
是实现XSLT中使用的自定义函数的类。