gpt4 book ai didi

c# - 为什么某些 .Net 程序集无法通过 AppDomain 的 GetAssemblies() 方法使用?

转载 作者:行者123 更新时间:2023-11-30 19:34:32 25 4
gpt4 key购买 nike

我有一些代码循环遍历当前加载到在 ASP.NET 应用程序中运行的 AppDomain 中的类型。以下是我获取程序集的方式:

var assemblies = AppDomain.CurrentDomain.GetAssemblies();

当应用程序首次启动时没有问题,我期望的所有类型都存在。但是,当我更新 Web.config 或终止 w3p.exe 进程(或进程因任何原因被回收)时,只有我期望的一些类型可用。当我单步执行调试器时,我注意到私有(private)搜索路径(我的应用程序的 bin 目录)中的某些程序集尚未加载。我假设所有程序集都在应用程序启动时加载并重新启动,无论它们是否立即需要。但是在重新启动的情况下,这似乎不会发生,除非那些程序集文件已更新。

我需要的是在启动时收集类型信息以备后用。但是由于在重新启动期间类型不可用,因此稍后需要使用类型信息时会造成严重破坏。那么考虑到这一点,我该如何解决或解决这个缺陷?

最佳答案

程序集是按需加载的,因此您可能还没有使用这些程序集中包含的任何类型。

关于c# - 为什么某些 .Net 程序集无法通过 AppDomain 的 GetAssemblies() 方法使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1402718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com