CLR何时在.NET进程中加载程序集? 引用程序集中的类时,是否由加载.NET程序集

CLR何时在.NET进程中加载程序集? 引用程序集中的类时,是否由加载.NET程序集,.net,assemblies,clr,.net,Assemblies,Clr,或 从程序集中声明使用命名空间的类何时加载 加载程序集后,如果长时间不使用它,它是否会卸载程序集?程序集是以各种方式加载的(项目引用、直接引用——这两种方式都是在编译时加载的(OK,显然不是)),但不是通过使用语句加载的。据我所知,它们再也没有卸载过。是JIT编译器指示CLR在将程序集转换为机器代码后加载程序集,这是根据需要完成的,确切时间不确定。至于第二个问题,一旦程序集加载到AppDomain中,卸载它的唯一方法就是销毁此AppDomain,没有其他方法卸载程序集。当您尝试使用程序集中的类型

  • 从程序集中声明使用命名空间的类何时加载

  • 加载程序集后,如果长时间不使用它,它是否会卸载程序集?

    程序集是以各种方式加载的(项目引用、直接引用——这两种方式都是在编译时加载的(OK,显然不是)),但不是通过使用语句加载的。据我所知,它们再也没有卸载过。

    是JIT编译器指示CLR在将程序集转换为机器代码后加载程序集,这是根据需要完成的,确切时间不确定。至于第二个问题,一旦程序集加载到AppDomain中,卸载它的唯一方法就是销毁此AppDomain,没有其他方法卸载程序集。

    当您尝试使用程序集中的类型时,会加载程序集。当程序开始执行一个它不知道的类型时,运行时会去解析该类型,然后加载包含该类型的程序集。

    您是否可以澄清为什么需要这些知识?您的代码是否依赖于在特定时间加载的程序集,或者什么?我正在维护一个遗留应用程序,其中一个类使用“名称空间”包含大量未使用的程序集。我只是想知道是否有必要删除它。看看这篇关于未使用的
    用法的文章,除了“一旦它被翻译”之外,其他都是准确的。翻译鸡在装蛋之后。