2009-07-20 82 views
6

我有一个WinForms 2.0应用程序,其中包含大约18个使用Microsoft ReportViewer创建的报告。 每次开始报告时,都会创建一个动态程序集(expression_host_xxxxxx.dll)。这个动态程序集被加载到内存中,并在那里用于应用程序运行时的其余部分消耗资源。 即使我们只有1个报告,我们开始这个3次,我们在内存中得到3个这样的表达式主机程序集。Expression_Host程序集数量不断增加

有没有办法阻止这些程序集的创建或在完成后卸载这些程序集?

TIA

回答

4

我已经找到了解决方案。在ReportViewer控件可以表示在所谓的沙盒应用程序域执行报告:

`rpv1.LocalReport.ExecuteReportInSandboxAppDomain();` 

这不会阻止Expression_Host组件的创建,因为这些是必要的,以评估你已经在使用的表达式你的报告。但是,它会在新的应用程序域中启动报告。报表完成后,新的应用程序域将被卸载,因此,该域中的任何加载的程序集也将被卸载。

+0

这回来与一个不推荐的消息,任何其他想法? – Neo 2012-02-21 14:33:26