【发布时间】:2016-04-27 13:28:24
【问题描述】:
我有一个控制台应用程序需要创建多个 <T> 类型的对象,而 T 位于另一个我不拥有的 dll 中。
当一个T 类型的对象被创建时,它会在内存中加载一个XML,但它永远不会释放它。
因此,如果您创建了太多 T 类型的对象,则会引发 OutOfMemoryException。
dll 没有为该对象提供 dispose 方法,我无法直接与 XML 交互。
有没有办法处理由我不拥有的 dll 创建的某种类型的对象?
我正在使用 .NET 4.6
第三方dll是Trados Studio的dll,供了解程序的人使用。
【问题讨论】:
-
你能把它加载到不同的appdomain中吗?听起来您需要向他们提交错误报告。
-
事实上,dll 需要与我的应用程序位于同一文件夹中,否则我会从 dll 中获得 LicensingException。为什么将其加载到不同的 appdomain 可以解决问题?
-
您可以卸载应用程序域。您无法卸载直接引用。
-
将实例设置为 null 并创建一个新实例不允许垃圾收集器处理它吗?
-
@DanielA.White :它可以完美地将其加载到不同的应用程序域中!谢谢