CA2121:静态构造函数应为私有

“值”
RuleId CA2121
Category Microsoft.Security
重大更改 重大

原因

类型具有非专用的静态构造函数。

注意

此规则已被弃用。 有关详细信息,请参阅已弃用的规则

规则说明

静态构造函数(也称为类构造函数)用于初始化类型。 系统在创建第一个类型实例或引用任何静态成员之前调用静态构造函数。 用户无法控制调用静态构造函数的时间。 如果静态构造函数不是私有,则系统以外的代码可以调用它。 根据构造函数中执行的操作,这可能导致意外行为。

此规则由 C# 和 Visual Basic 编译器强制执行。

如何解决冲突

冲突通常由以下操作之一导致:

  • 你为类型定义了一个静态构造函数,但未将其设置为专用。

  • 编程语言编译器向类型添加了默认的静态构造函数,并且未将其设置为专用。

若要解决第一种冲突,请将静态构造函数设置为专用。 若要解决第二种冲突,请向类型添加专用静态构造函数。

何时禁止显示警告

请勿禁止显示这些冲突。 如果软件设计需要显式调用静态构造函数,则设计很可能包含严重缺陷,应进行评审。