13得票3回答
如何将静态构造函数变为非私有?

public、private等访问修饰符不允许在C#的静态构造函数上使用。然而,Visual Studio代码分析在C#安全类别中有一个警告,指出"CA2121: Static constructors should be private"。 是否可能使静态构造函数非私有?还是这是Visua...

9得票3回答
给基类的静态只读字段赋值

public class ClassA { public static readonly string processName; } public class ClassB : ClassA { static ClassB() { processNa...

45得票4回答
如何向静态类构造函数传递参数?

我有一个静态类和一个静态构造函数。我需要以某种方式将参数传递给这个静态类,但我不确定最佳方式是什么。 你有什么建议?public static class MyClass { static MyClass() { DoStuff("HardCodedParameter...

42得票4回答
显式调用静态构造函数

我希望为下面这个类编写单元测试。 如果名称不是"MyEntity",那么mgr应该为空。 负面单元测试 使用Manager私有访问器,我想将名称更改为"Test",以便mgr应该为null。 然后将验证mgr的值。 为了实现这一点,我想显式调用静态构造函数,但是当我使用调用静态构造函数时,会发...

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

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

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

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

11得票3回答
类型初始化器(静态构造函数)异常处理

我正在使用C#编写WCF服务。最初,我的实现中有一个静态构造函数来进行一次性的初始化,但其中一些被执行的初始化可能(暂时)失败了。 似乎静态构造函数只会被调用一次,即使第一次(失败的)尝试抛出异常?任何后续实例化我的类的尝试都将立即失败,并且代码实际上不会被执行,而会抛出一个“TypeIni...

11得票1回答
.NET接口上的静态构造函数没有运行

您可以在.NET中的IL中为接口定义静态构造函数。但是,如果您这样做,当您在接口上运行方法时,静态构造函数不会运行:.method public static void Main() { .entrypoint .locals init ( class IInterfa...

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

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

39得票6回答
如何确保调用基类的静态构造函数?

C# 中的静态构造函数文档中提到: 静态构造函数用于初始化任何静态数据,或执行仅需一次完成的特定操作。在创建第一个实例或引用任何静态成员之前,它会被自动调用。 这个最后一句话(关于何时自动调用)让我有些困惑;在读到这句话之前,我认为只要以任何方式访问一个类,我就可以确定基类的静态构...