CA2121:静态构造函数应为私有
类型名 |
StaticConstructorsShouldBePrivate |
CheckId |
CA2121 |
类别 |
Microsoft.Security |
是否重大更改 |
是 |
原因
类型的静态构造函数不是私有。
规则说明
静态构造函数(也称为类构造函数)用于初始化类型。 系统在创建第一个类型实例或引用任何静态成员之前调用静态构造函数。 用户不能控制何时调用该静态构造函数。 如果静态构造函数不是私有,则系统以外的代码可以调用它。 根据构造函数中执行的操作,这可能导致意外行为。
该规则由 C# 和 Visual Basic .NET 编译器强制执行。
如何解决冲突
冲突一般是由下列操作之一引起的:
您定义了类型的静态构造函数,但未将其设置为私有。
编程语言编译器已向您的类型中添加默认静态构造函数,但未将其设置为私有。
要修复第一类冲突,请将静态构造函数设置为私有。 要修复第二类冲突,请向您的类型中添加私有静态构造函数。
何时禁止显示警告
不要禁止显示这些冲突。 如果软件设计要求显式调用静态构造函数,则可能该设计存在严重缺陷,请检查该设计。