Export (0) Print
Expand All
Expand Minimize

Mark assemblies with CLSCompliant

TypeName

MarkAssembliesWithClsCompliant

CheckId

CA1014

Category

Microsoft.Design

Breaking Change

NonBreaking

An assembly does not have the System.CLSCompliantAttribute attribute applied to it.

The Common Language Specification (CLS) defines naming restrictions, data types, and rules to which assemblies must conform if they are to be used across programming languages. Good design dictates that all assemblies explicitly indicate CLS compliance with CLSCompliantAttribute. If the attribute is not present on an assembly, the assembly is not compliant.

It is possible for a CLS-compliant assembly to contain types or type members that are not compliant.

To fix a violation of this rule, add the attribute to the assembly. Instead of marking the entire assembly as noncompliant, you should determine which type or type members are not compliant, and mark these elements as such. If possible, you should provide a CLS-compliant alternative for noncompliant members so that the widest possible audience can access all the functionality of your assembly.

Do not exclude a warning from this rule. If you do not want the assembly to be compliant, apply the attribute and set its value to false.

The following example shows an assembly with the System.CLSCompliantAttribute attribute applied that declares it CLS-compliant.

using System;

[assembly:CLSCompliant(true)]
namespace DesignLibrary {}

Community Additions

ADD
Show:
© 2014 Microsoft