CA1014: アセンブリに CLSCompliantAttribute を設定します
TypeName |
MarkAssembliesWithClsCompliant |
CheckId |
CA1014 |
分類 |
Microsoft.Design |
互換性に影響する変更点 |
なし |
原因
アセンブリに、それに適用される System.CLSCompliantAttribute 属性がありません。
規則の説明
共通言語仕様 (CLS) には、名前付けの制約、データ型、および規則が定義されています。アセンブリを複数のプログラミング言語で使用する場合、この仕様に準拠する必要があります。 すべてのアセンブリに CLSCompliantAttribute を使用して、CLS への準拠を明示することをお勧めします。 この属性が使用されていないアセンブリは、CLS に準拠しません。
CLS 準拠のアセンブリに、準拠しない型または型のメンバーを含めることもできます。
違反の修正方法
この規則違反を修正するには、アセンブリにこの属性を追加します。 アセンブリ全体を非準拠とマークするのではなく、準拠していない型または型のメンバーを判断し、その要素にマークします。 可能であれば、準拠していないメンバーを CLS に準拠しているメンバーで置き換え、できるだけ広範囲のユーザーがアセンブリの全機能にアクセスできるようにします。
警告を抑制する状況
この規則による警告は抑制しないでください。 アセンブリを仕様準拠にしない場合、この属性を適用し、値を false に設定します。
使用例
CLS 準拠を宣言する System.CLSCompliantAttribute 属性が適用されたアセンブリを次の例に示します。
Imports System
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace
using System;
[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
using namespace System;
[assembly:CLSCompliant(true)];
namespace DesignLibrary {}