C# 程序集何时加载到appdomain

C# 程序集何时加载到appdomain,c#,C#,我想枚举大型应用程序中的所有类型,并找到实现IFoo的所有类 用双向飞碟回答类似问题 var types = (from assembly in AppDomain.CurrentDomain.GetAssemblies() from type in assembly.GetTypes() where Attribute.IsDefined(type, typeof(SerializableAttribute)) se

我想枚举大型应用程序中的所有类型,并找到实现IFoo的所有类

用双向飞碟回答类似问题

var types = (from assembly in AppDomain.CurrentDomain.GetAssemblies()
             from type in assembly.GetTypes()
             where Attribute.IsDefined(type, typeof(SerializableAttribute))
             select type).ToList();
我知道如何做到这一点,但我看到的一些评论让我怀疑我何时能做到这一点


名单什么时候才能完成。我的意思是在appdomain生命周期的什么时候加载所有程序集。显然,动态加载的文件不会立即加载,但是静态文件呢。装载是否推迟到首次使用?我最初对需求的解决方案涉及静态构造函数,但存在一个问题,就是这些构造函数被懒散地调用。

好的,其他澄清的尝试是:为什么要这样做,什么时候要这样做?因为看起来您没有控制主入口点,否则您可能会在那里然后再进行。程序集通常根据需要加载,除非由用户代码显式加载,因此它将根据调用查询的位置获得不同的结果。程序集根据需要加载,因此,无法保证加载了哪些程序集。您可能会注意到,汇编。GETTYPE很容易失败。即,如果基类型缺失/或32/64位特定于味道。