我正在开发一个.NET 1.1程序集,它可以执行许多巨大的XSL转换。这开始引起记忆问题。因此,我想在.NET 2.0框架中使用XSLT引擎,因为我知道它更有效,资源更少。注意:由于时间和预算的限制(超出我的控制范围),目前不能将.NET 1.1程序集升级到.NET 2.0。
我编写了一个可以进行XSL转换的.NET 2.0程序集,并将其作为COM + interop对象公开。当我从.NET 1.1程序集加载此对象时,它加载正常,但是一旦我加载XSL转换,就会发生异常,并且它不包含任何有用的信息。
有趣的是,如果我在.NET 2.0程序集中调用一个更简单,不相关的测试方法(就像只写入事件日志而不是进行转换的方法),它似乎有效。
关于替代方法的任何想法?或者有什么明显我做错了吗?
任何帮助将不胜感激!谢谢!
答案 0 :(得分:1)
我怀疑单独的COM互操作会杀死你将XSLT升级到2.0所带来的任何性能提升。可能也与无用的例外有关。
您是否尝试在2.0下运行1.1程序集?有关如何定位特定版本框架的说明,请参阅this page。我对底层的XSLT引擎并不十分熟悉,但只是切换目标可能会让你获得2.0的玩具,它肯定会让你获得2.0的性能。
答案 1 :(得分:0)
考虑msxsl.exe tool上的Process.Start()。它不使用.NET。或者,如果您正在进行COM互操作,请考虑使用MSXML - 它也会执行XSL,并且它很快。