Partilhar via


CA1515: Considere tornar os tipos públicos internos

Propriedade valor
ID da regra CA1515
Título Considere tornar os tipos públicos internos
Categoria Manutenibilidade
A correção está quebrando ou não quebrando Sem quebra
Habilitado por padrão no .NET 10 Não

Motivo

Um tipo dentro de um assembly executável é declarado como público.

Descrição da regra

Ao contrário de uma biblioteca de classes, a API de um aplicativo normalmente não é referenciada publicamente, portanto, os tipos podem ser marcados internal.

Os tipos internos, por sua vez, podem se beneficiar de vários analisadores de código que visam APIs não públicas.

Como corrigir violações

Marque o tipo como internal.

Exemplo

O trecho de código a seguir mostra uma violação 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

O trecho de código a seguir corrige a violação:

// 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 obter mais informações sobre o tipo de saída de um projeto, consulte a seção "Tipo de saída" do .NET Project Designer.)

Quando suprimir avisos

É seguro suprimir uma violação dessa regra se você não estiver preocupado com a capacidade de manutenção do seu código.

Suprimir um aviso

Se você quiser apenas suprimir uma única violação, adicione diretivas de pré-processador ao seu arquivo de origem para desativar e, em seguida, reativar a regra.

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

Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade como none no arquivo de configuração.

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

Para obter mais informações, consulte Como suprimir avisos de análise de código.

Configurar código para análise

Você pode configurar a quais tipos de assembly de saída aplicar essa regra. Por exemplo, para aplicar essa regra somente ao código que produz um aplicativo de console ou uma biblioteca vinculada dinamicamente (ou seja, não um aplicativo de interface do usuário), adicione o seguinte par chave-valor a um arquivo .editorconfig em seu projeto:

dotnet_code_quality.CA1515.output_kind = ConsoleApplication, DynamicallyLinkedLibrary

Para obter mais informações, consulte output_kind.