XslTransformException未被用户代码处理

时间:2012-09-24 18:37:14

标签: c# asp.net visual-studio-2010 xslt runtime-error

我收到的错误是我过去没有遇到的(搜索后无法找到解决方案)。

错误消息: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)

有任何想法如何解决此问题?

1 个答案:

答案 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中使用的自定义函数的类。