Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Propiedad | Importancia |
---|---|
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 9 | 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)
{
}
}
' Inside a project with <OutputKind>Exe</OutputKind>.
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)
{
}
}
' Inside a project with <OutputKind>Exe</OutputKind>.
Friend Class Program
Public Shared Sub Main(args As string())
End Sub
End Class
(Para obtener más información sobre el tipo de salida de un proyecto, vea la sección "Tipo de salida" del Diseñador de proyectos de .NET).
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.
Configuración del código para analizar
Puede configurar los tipos de ensamblado de salida a los que aplicar esta regla. Por ejemplo, para aplicar esta regla solo al código que produce una aplicación de consola o una biblioteca vinculada dinámicamente (es decir, no una aplicación de interfaz de usuario), agregue el siguiente par clave-valor a un archivo .editorconfig en el proyecto:
dotnet_code_quality.CA1515.output_kind = ConsoleApplication, DynamicallyLinkedLibrary
Para obtener más información, consulte output_kind.