CA1515: considere la posibilidad de hacer que los tipos públicos sean internos
Propiedad | Value |
---|---|
Identificador de la regla | CA1515 |
Título | Considere la posibilidad de hacer que los tipos públicos sean internos |
Categoría | Capacidad de mantenimiento |
La corrección es problemática o no problemática | Poco problemático |
Habilitado de forma predeterminada en .NET 8 | No |
Causa
Un tipo dentro de un ensamblado ejecutable se declara como público.
Descripción de la regla
A diferencia de una biblioteca de clases, la API de una aplicación no suele referenciarse públicamente, por lo que los tipos se pueden marcar como internal
.
Los tipos internos, a su vez, pueden beneficiarse de varios analizadores de código que tienen como destino API no públicas.
Cómo corregir infracciones
Marque el tipo como internal
.
Ejemplo
El siguiente fragmento de código muestra una infracción de CA1515:
// Inside a project with <OutputKind>Exe</OutputKind>
public class Program
{
public static void Main(string[] args)
{
}
}
Public Class Program
Public Shared Sub Main(args As string())
End Sub
End Class
El siguiente fragmento de código corrige la infracción:
// Inside a project with <OutputKind>Exe</OutputKind>
internal class Program
{
public static void Main(string[] args)
{
}
}
Friend Class Program
Public Shared Sub Main(args As string())
End Sub
End Class
Cuándo suprimir las advertencias
Es seguro suprimir una infracción de esta regla si no le preocupa el mantenimiento del código.
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 CA1515
// The code that's violating the rule is on this line.
#pragma warning restore CA1515
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.CA1515.severity = none
Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.