Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将程序集加载到AppDomain中?_C#_.net_Compiler Construction_Clr_.net Assembly - Fatal编程技术网

C# 如何将程序集加载到AppDomain中?

C# 如何将程序集加载到AppDomain中?,c#,.net,compiler-construction,clr,.net-assembly,C#,.net,Compiler Construction,Clr,.net Assembly,什么决定程序集何时以及是否加载到AppDomain 我想我是在试图理解: 我保证所有项目引用的程序集都将 在我的应用程序开始时加载 如果不是,具体什么时候做 他们上膛了吗?这将是我第一次使用电脑吗 来自该程序集的类/函数 有没有办法告诉我 如果程序集必须在执行前首先加载,则为编译时 我的代码的第一行?(我知道我可以使用反射,但我 想知道我是否可以在编译时配置它) 假设我 可以控制何时加载程序集,那么依赖程序集呢 装配我能告诉执行只加载到1/2度吗 让其余的动态加载 我不知道细节,但我知道当无法加

什么决定程序集何时以及是否加载到AppDomain

我想我是在试图理解:

  • 我保证所有项目引用的程序集都将 在我的应用程序开始时加载
  • 如果不是,具体什么时候做 他们上膛了吗?这将是我第一次使用电脑吗 来自该程序集的类/函数
  • 有没有办法告诉我 如果程序集必须在执行前首先加载,则为编译时 我的代码的第一行?(我知道我可以使用反射,但我 想知道我是否可以在编译时配置它)
  • 假设我 可以控制何时加载程序集,那么依赖程序集呢 装配我能告诉执行只加载到1/2度吗 让其余的动态加载

  • 我不知道细节,但我知道当无法加载程序集时会发生事件thorwn。所以我猜它们是在运行时加载的,您可以向其中添加例程

    我认为这将有助于您解决组装问题

    这是关于程序集加载事件的

  • 不,您可以得到相反的保证:只加载开始时直接需要的程序集
  • 是的,只要某个类需要来自该程序集的类型信息,或者需要该程序集的代码将被JIT,就会尝试加载该程序集
  • 不,在编译时,没有办法强制程序集加载顺序不引用
    主程序集中每个程序集的内容(请注意,目标通常是相反的-延迟加载尽可能多的程序集以加快应用程序的加载)
  • 不,您无法控制自动加载(Simon Edström指出,当CLR决定需要程序集时,会触发程序集解析事件)。如果您知道依赖项,则始终可以自己预加载程序集

  • 注意:程序集不直接相互“依赖”,只是每个程序集中的类/方法相互依赖

    根据更多的研究,可能有一种方法可以影响(3),使用NGEN(原生图像生成器)——但是的,这是另一种蠕虫。