如何强制在asp.net Web应用程序中调用静态类构造函数?

时间:2015-08-04 13:54:21

标签: c# asp.net static-classes

如何强制在asp.net Web应用程序中调用静态类构造函数构造函数。一种方法是强制使用静态类,因此在调用静态构造函数之前将会调用它。有没有其他方法可以强迫它。

2 个答案:

答案 0 :(得分:1)

您需要实现Singleton设计模式:

https://msdn.microsoft.com/en-us/library/ff650316.aspx

public class Singleton
{
   private static Singleton instance;

   private Singleton() {}

   public static Singleton Instance
   {
      get 
      {
         if (instance == null)
         {
            instance = new Singleton();
         }
         return instance;
      }
   }
}

答案 1 :(得分:0)

保证静态构造函数不会晚于当前应用程序域中任何线程第一次命中声明类型的时刻被调用。“命中”类型意味着访问该类型的成员或公共字段或者只是简单地使用反射API来查询它。

注意: 1)CLR可以尽快调用这个静态构造函数,但不能晚于我上面告诉你的内容。

2)它是线程安全的(如果两个线程第一次想要访问一个类型,只有第一个线程获胜并调用你的静态构造函数。)

3)据我所知,你无法控制静态构造函数被调用的确切时刻,但是对你的类型声明的任何字段的简单访问将“强制”静态构造函数被调用。

有关详细信息,请阅读:https://msdn.microsoft.com/en-us/library/k9x6w0hc.aspx