我感觉自己撞到了墙上。我正在开发一个web应用程序,它使用Saxon库来执行XSLT转换。该应用程序曾经是一个控制台应用程序,它只是将输出打印到控制台,但后来,我们决定从web控制该应用程序。
我编写了一个输出到网页的自定义TextWriter
类,并使用Console.SetOut
和Console.SetError
将我的控制台输出定向到网页。
但是,撒克逊使用的是某种Java兼容性库,它似乎不受Console.SetOut
的影响,所以当我在web上运行应用程序时,内部的撒克逊错误不会出现在网页上。
我的问题的简短版本是:假设我调用Console.SetOut
来更改控制台文本输出到的位置,但它不起作用。然后呢?
发布于 2013-10-25 05:13:04
我很惊讶Console.SetOut和Console.SetError不能工作。.NET上的Saxon正在使用通过IKVMC交叉编译成.NET的OpenJDK库,我期望输出流的映射能够使这些方法工作。如果您认为这里有bug,可以在saxonica.plan.io的Saxonica支持站点上报告它,其中有一个重现该问题的示例。
但是,重定向Saxon错误消息的更好方法可能是注册您自己的ErrorListener。您不能直接在.NET Saxon API中执行此操作,但可以通过从XsltTransformer获取控制器,并使用javax.xml.transform.ErrorListener接口的实现调用其setErrorListener方法来完成此操作。
https://stackoverflow.com/questions/19549190
复制相似问题