Compartilhar 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 Facilidade de manutenção
Correção interruptiva ou sem interrupção Sem interrupção
Habilitado por padrão no .NET 10 Não

Causa

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 como internal.

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

Como corrigir violações

Marque o tipo como internal.

Exemplo

O seguinte snippet de código mostra uma violação da 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 seguinte snippet de código conserta 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 Designer de Projeto do .NET.)

Quando suprimir avisos

Será seguro suprimir uma violação dessa regra se você não estiver preocupado com a manutenção do código.

Suprimir um aviso

Para suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem a fim de desabilitar e, em seguida, reabilitar 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 em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.

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

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

Configurar código para analisar

Você pode configurar a quais tipos de assembly de saída aplicar essa regra. Por exemplo, para aplicar essa regra apenas 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.