1

我正在开发一个 .NET 1.1 程序集,该程序集进行了许多巨大的 XSL 转换。这开始导致内存问题。因此,我想在 .NET 2.0 框架中使用 XSLT 引擎,因为我知道它效率更高且资源占用更少。注意:由于时间和预算限制(超出我的控制范围),目前不能将 .NET 1.1 程序集升级到 .NET 2.0。

我编写了一个可以进行 XSL 转换的 .NET 2.0 程序集,并将其公开为 COM+ 互操作对象。当我从 .NET 1.1 程序集中加载这个对象时,它加载得很好,但是当我加载 XSL 转换时,就会发生异常,并且它不包含任何关于出错的有用信息。

有趣的是,如果我在 .NET 2.0 程序集中调用一个更简单、不相关的测试方法(就像一个只写入事件日志而不是进行转换的方法),它似乎可以工作。

关于替代方法的任何想法?或者有什么明显的我做错了吗?

任何帮助将不胜感激!谢谢!

4

2 回答 2

1

我怀疑单独的 COM 互操作会扼杀您在将 XSLT 升级到 2.0 后获得的任何性能增强。可能也与无用异常有关。

您是否尝试过在 2.0 下运行 1.1 程序集?有关如何针对特定版本的框架的说明,请参阅此页面。我对底层的 XSLT 引擎不是很熟悉,但仅仅切换目标可能会让您在 2.0 中获得玩具,并且肯定会获得 2.0 的性能。

于 2009-06-03T13:54:05.437 回答
0

考虑msxsl.exe 工具上的 Process.Start() 。它不使用 .NET。或者,如果您仍然在进行 COM 互操作,请考虑 MSXML——它也可以进行 XSL,而且速度很快。

于 2009-06-04T03:20:10.813 回答