卸载使用 Assembly.LoadFrom() 加载的程序集
为了检查加载 DLL 后运行 GetTypes() 所需的时间使用Assembly.LoadFrom(),可能需要卸载并重新加载DLL。但是,将程序集引用设置为 null 不足以卸载程序集。
显式卸载程序集
要显式卸载程序集,可以使用 AppDomain.Unload () 方法。下面是一个示例:
// Create a separate AppDomain to load the assembly AppDomain dom = AppDomain.CreateDomain("some"); // Load the assembly into the new AppDomain Assembly assembly = dom.LoadFrom(filePath); // Get the types from the assembly Type[] types = assembly.GetTypes(); // Unload the AppDomain, which will unload the assembly AppDomain.Unload(dom);
通过卸载 AppDomain,程序集及其所有资源将被垃圾收集器回收。
使用垃圾收集器
虽然将程序集引用设置为 null 不会显式卸载程序集,但它会使其成为垃圾 收藏。垃圾收集器最终会回收分配给 Assembly 对象的资源,并且程序集文件将从内存中卸载。
但是,无法显式调用垃圾收集器或强制其立即运行。它是一个后台进程,在系统空闲时间时运行。因此,如果您想显式卸载程序集,建议使用 AppDomain.Unload()。
以上是如何显式卸载使用 Assembly.LoadFrom() 加载的程序集?的详细内容。更多信息请关注PHP中文网其他相关文章!