CA1014: Marcar assemblies com CLSCompliantAttributeCA1014: Mark assemblies with CLSCompliantAttribute

ItemItem ValorValue
RuleIdRuleId CA1014CA1014
CategoriaCategory Microsoft. DesignMicrosoft.Design
A correção está sendo interrompida ou não está sendo interrompidaFix is breaking or non-breaking Sem interrupçãoNon-breaking

CausaCause

Um assembly não tem o System.CLSCompliantAttribute atributo aplicado a ele.An assembly does not have the System.CLSCompliantAttribute attribute applied to it.

Descrição da regraRule description

A CLS (Common Language Specification) define restrições de nomenclatura, tipos de dados e regras que assemblies deverão respeitar se forem usados em todas as linguagens de programação.The Common Language Specification (CLS) defines naming restrictions, data types, and rules to which assemblies must conform if they will be used across programming languages. Um bom design dita que todos os assemblies indicam explicitamente a conformidade com CLS com CLSCompliantAttribute .Good design dictates that all assemblies explicitly indicate CLS compliance with CLSCompliantAttribute. Se o atributo não estiver presente em um assembly, o assembly não será compatível.If the attribute is not present on an assembly, the assembly is not compliant.

É possível que um assembly em conformidade com CLS contenha tipos ou membros de tipo que não estejam em conformidade.It is possible for a CLS-compliant assembly to contain types or type members that are not compliant.

Como corrigir violaçõesHow to fix violations

Para corrigir uma violação dessa regra, adicione o atributo ao assembly.To fix a violation of this rule, add the attribute to the assembly. Em vez de marcar o assembly inteiro como não compatível, você deve determinar quais tipos ou membros de tipo não são compatíveis e marcar esses elementos como tal.Instead of marking the whole assembly as noncompliant, you should determine which type or type members are not compliant and mark these elements as such. Se possível, você deve fornecer uma alternativa em conformidade com CLS para membros não compatíveis para que o público mais amplo possível acesse toda a funcionalidade do seu assembly.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.

Quando suprimir avisosWhen to suppress warnings

Não suprima um aviso nessa regra.Do not suppress a warning from this rule. Se você não quiser que o assembly esteja em conformidade, aplique o atributo e defina seu valor como false .If you do not want the assembly to be compliant, apply the attribute and set its value to false.

Suprimir um avisoSuppress a warning

Há várias maneiras de suprimir um aviso de análise de código, incluindo a desabilitação da regra para o projeto, o uso de uma diretiva de pré-processador para desabilitá-la em uma linha de código específica ou ao aplicar o SuppressMessageAttribute atributo.There are various ways to suppress a code analysis warning, including disabling the rule for the project, using a preprocessor directive to disable it for a specific line of code, or by applying the SuppressMessageAttribute attribute. Para obter mais informações, consulte como suprimir avisos de análise de código.For more information, see How to suppress code analysis warnings.

ExemploExample

O exemplo a seguir mostra um assembly que tem o System.CLSCompliantAttribute atributo aplicado que declara em conformidade com CLS.The following example shows an assembly that has the System.CLSCompliantAttribute attribute applied that declares it CLS-compliant.

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

Confira tambémSee also