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

强制类加载

  •  12
  • configurator  · 技术社区  · 14 年前

    C或.NET IL中是否有方法强制具有类型初始值设定项(静态构造函数)的类在不访问其任何参数的情况下加载自身?

    假设我有课

    public static class LogInitialization {
        static LogInitialization() {
            System.Console.WriteLine("Initialized");
        }
    }
    

    有没有办法把这行打印出来?

    注意这个类是静态的,所以我不能实例化它来强制初始化,它没有公共成员,所以我不能访问它们来启动它。

    2 回复  |  直到 14 年前
        1
  •  13
  •   configurator    14 年前

    RuntimeHelpers.RunClassConstructor

    • System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor
        2
  •  7
  •   Jeff    14 年前

    public static void Initialize() 
    { 
      // this will force your static constructor to execute, obviously
    }
    

    http://msdn.microsoft.com/en-us/library/system.type.typeinitializer.aspx