8得票1回答
RunClassConstructor是否保证只运行一次类型的静态构造函数?

我正在使用以下代码调用类的静态构造函数: Type type; System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(type.TypeHandle); 这会导致 cctor 被运行两次吗?

7得票1回答
编译器为什么不能优化未使用的静态 std::string?

如果我使用GCC或Clang编译此代码并启用-O2优化,仍然会得到一些全局对象初始化。是否有可能任何代码都能访问这些变量? #include <string> static const std::string s = ""; int main() { return 0; } ...

7得票2回答
如何显式运行未知类型的静态构造函数?

可能是重复问题: 如何使用反射调用静态构造函数? 在不同类的静态构造函数中有一些初始化代码。我不能创建实例,也不知道提前知道类型。我想确保这些类已被加载。 我尝试了这个: fooType.TypeInitializer.Invoke (new object[0]); 但是遇到了...

7得票5回答
如何检查静态构造函数是否已被调用?

我有一些从数据库缓存数据的类,这些类在静态构造函数被调用时加载数据。 我需要调用所有这些类的静态Reload方法,除了那些尚未初始化的类。 例如:City从数据库缓存数据。 public class City { public City Get(string key) {...

7得票5回答
追踪静态构造函数的执行

我在这里遇到了一个问题,就是我的一个类的静态构造函数在应该之前被调用了。(即,DI / IoC没有设置好,并且从服务定位器返回null /异常)。 不幸的是,我无法控制静态构造函数,不要问我为什么它依赖于DI / IoC的设置,但它确实需要。 在我的应用程序中,在IoC准备就绪之前,没有任...