代码之家  ›  专栏  ›  技术社区  ›  ngoozeff

在.NET中,创建新的AppDomain时是否调用静态构造函数?

  •  15
  • ngoozeff  · 技术社区  · 15 年前

    AppDomain.CreateDomain 在C#中,静态构造函数会在新创建的AppDomain中加载组件时被调用吗?

    有问题的程序集已加载到当前域中。

    2 回复  |  直到 15 年前
        1
  •  20
  •   Jon Skeet    10 年前

    否-只有在第一次访问静态成员或创建实例时才会调用静态构造函数。

    静态构造函数 每次调用一次 AppDomain 不过,如果这是你关心的。这不像是在不同的地方执行过一次 应用程序域 未初始化:)

    请注意,类型的类型初始值设定项 静态构造函数可以早于或晚于类型的构造函数执行 静态构造函数,以及精确的实现细节 changed for .NET 4 .

        2
  •  4
  •   spinon    15 年前

    http://codeidol.com/csharp/net-framework/Threads,-AppDomains,-and-Processes/AppDomains/

    以下是摘录:

    除非使用类似线程静态字段的内容,否则每个AppDomain都包含所有静态字段的副本。所有类(或静态)构造函数将在给定的AppDomain中运行一次。这意味着,如果在不同的appdomain中加载相同的程序集,则每个程序集都将运行类构造函数,并且每个构造函数都将包含所有静态字段的单独值,例如。