CA1014:用 CLSCompliantAttribute 标记程序集

2022-01-10 09:22:16 浏览数 (1)

“值”

RuleId

CA1014

类别

设计

修复是中断修复还是非中断修复

非中断

原因

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

规则说明

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

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

如何解决冲突

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

何时禁止显示警告

不禁止显示此规则发出的警告。 如果不希望程序集符合 CLS,请应用属性并将其值设置为 false。

如果必须禁止显示此警告,请向 .globalconfig 文件添加 dotnet_diagnostic.CA1014.severity = none。 或者,如果项目中没有代码文件,请将 <NoWarn>CA1041</NoWarn> 添加到项目文件。

示例

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

[assembly:CLSCompliant(true)]

namespace DesignLibrary {}

<assembly:CLSCompliant(true)>

Namespace DesignLibrary

End Namespace

另请参阅

System.CLSCompliantAttribute

语言独立性和与语言无关的组件

0 人点赞