Share via


CA1014: Marcar los ensamblados con CLSCompliantAttribute

Propiedad Value
Identificador de la regla CA1014
Título Marcar los ensamblados con CLSCompliantAttribute
Categoría Diseño
La corrección es problemática o no problemática Poco problemático
Habilitado de forma predeterminada en .NET 8 No

Causa

Un ensamblado no tiene aplicado el atributo System.CLSCompliantAttribute.

Descripción de la regla

La Common Language Specification (CLS) define las restricciones de nomenclatura, los tipos de datos y las reglas a las que los ensamblados deben ajustarse si se van a utilizar los lenguajes de programación. Los procedimientos de diseño establecen que todos los ensamblados deben indicar explícitamente la conformidad a CLS con CLSCompliantAttribute. Si el atributo no está presente en un ensamblado, el ensamblado no es conforme.

Es posible que un ensamblado conforme a CLS contenga tipos o miembros de tipo que no sean conformes.

Cómo corregir infracciones

Para corregir una infracción de esta regla, agregue el atributo al ensamblado. En lugar de marcar todo el ensamblado como no conforme, debe determinar qué tipo o miembros de tipo no son conformes y marcarlos en consecuencia. Si es posible, debe proporcionar una alternativa conforme a CLS para los miembros no conformes, de modo que la audiencia más amplia posible pueda acceder a toda la funcionalidad del ensamblado.

Cuándo suprimir las advertencias

No suprima las advertencias de esta regla. Si no quiere que el ensamblado sea conforme, aplique el atributo y establezca su valor en false.

Supresión de una advertencia

Si solo quiere suprimir una única infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.

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

Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad en none del archivo de configuración.

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

Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.

Ejemplo

En el ejemplo siguiente se muestra un ensamblado que tiene aplicado el atributo System.CLSCompliantAttribute que lo declara como conforme a CLS.

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

Consulte también