【发布时间】:2009-10-12 12:50:10
【问题描述】:
当我使用包含相同程序集的 Byte 数组多次调用 Assembly.Load(Byte[]) 时会发生什么?
每次调用都会获得相同的 Assembly 实例吗?
同一个程序集在应用域内多次加载???
【问题讨论】:
-
您实际上会泄漏。我在 2006 年设计的一个服务应用程序就是使用这种方法。由于 Assembly.Load() 的原因,我们不得不每周日重新启动它,因为它占用了 4Gb RAM 和 8Gb 分页。
-
从技术上讲,这当然不是泄漏。但是,将多个 Assembly 实例加载到 AppDomain 中是没有意义的——您很可能只使用一个,而所有其他实例都只是在消耗服务器内存。
标签: c# assemblies appdomain assembly-resolution