程序启动时C#实例化/初始化对象

时间:2009-04-27 06:03:53

标签: c# reflection static startup

我是一名最近在C#工作的C / C ++程序员,我正在尝试做一些花哨的初始化工作,我遇到了一些麻烦。

我能提出的最好和最简单的例子是我想要创建一个“Eager”Singleton - 一个在程序启动时立即创建的,但是我没有要求进入程序的主要功能并说“Singleton.Instance()”作为第一件事。我读了静态实例化,看起来它必须在实例化静态对象之前调用或创建,所以我尝试创建一个实例化对象的静态变量,但这不起作用。 (我找不到任何关于何时实例化/初始化静态变量的文档。)

任何指针?

谢谢!

编辑:经过一些额外的研究,我认为我可以用一个利用反射的代码块来完成我正在寻找的东西

1 个答案:

答案 0 :(得分:2)

只有在第一次引用包含构造函数的类时才会调用静态构造函数。因此,当您希望初始化代码在程序启动时运行时,您必须在启动代码中显式引用包含构造函数的类(例如Main方法)。