跟踪静态构造函数执行

Are*_*ren 3 .net c# debugging static-constructor

我遇到了一个问题,其中一个类的静态构造函数在它应该被调用之前被调用.(即,DI/IoC未设置,它从服务定位器返回null/exception).

遗憾的是,我对静态构造函数没有很多控制权,不要问我为什么要依赖DI/IoC进行设置,但确实如此.

在我的应用程序中,在我的IoC准备就绪之前,没有任何东西应该引用此类静态或其他方式,但静态构造函数仍在执行.

有没有一种简单的方法来确定导致构造函数执行的行?注意:我无法断点,static constructor因为这是在ASP.NET的远程调试器可以附加到Web服务器之前发生的(在Global.asax.cs中)

lep*_*pie 16

一如既往,使用:

Debugger.Break()
Run Code Online (Sandbox Code Playgroud)


san*_*oIT 1

您无法控制静态构造函数何时执行。将您正在执行的任何操作从构造函数移至静态Initialize()函数。当你准备好时就打电话给那个人。不依赖于静态构造函数何时执行。

检查此链接

静态构造函数有以下内容

特性:

在创建第一个实例或引用任何静态成员之前,会自动调用静态构造函数来初始化类。

静态构造函数不能直接调用。

用户无法控制静态构造函数何时在程序中执行。