通过


CA1014:用 CLSCompliantAttribute 标记程序集

属性
规则 ID CA1014
标题 用 CLSCompliantAttribute 标记程序集
类别 设计
修复会引起中断还是不会引起中断 非中断
在 .NET 10 中默认启用
适用的语言 C# 和 Visual Basic

原因

程序集没有应用 System.CLSCompliantAttribute 属性。

规则说明

公共语言规范 (CLS) 定义了程序集在跨编程语言使用时必须符合的命名限制、数据类型和规则。 好的设计要求所有程序集用 CLSCompliantAttribute 显式指示 CLS 合规性。 如果程序集没有此属性,则该程序集即不合规。

符合 CLS 的程序集可能包含不合规的类型或类型成员。

如何解决违规

若要解决此规则的冲突,请将属性添加到程序集。 应确定不合规的类型或类型成员,并将这些元素标记为不合规,而不是将整个程序集标记为不相容。 如果可能,应为不合规的成员提供符合 CLS 的替代方法,让尽可能多的用户能够访问程序集的所有功能。

何时禁止显示警告

不要抑制此规则发出的警告。 如果不希望程序集符合标准,请应用相关属性并将其值设置为false

抑制警告

如果只想抑制单个冲突,请将预处理器指令添加到源文件以禁用该规则,然后重新启用该规则。

#pragma warning disable CA1014
// The code that's violating the rule is on this line.
#pragma warning restore CA1014

若要对文件、文件夹或项目禁用该规则,请在none中将其严重性设置为

[*.{cs,vb}]
dotnet_diagnostic.CA1014.severity = none

有关详细信息,请参阅如何禁止显示代码分析警告

示例

下面的示例演示应用了 System.CLSCompliantAttribute 属性的程序集,该属性声明此程序集符合 CLS。

[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace

另请参阅