Condividi tramite


CA1515: Valutare la possibilità di rendere interni i tipi pubblici

Proprietà valore
ID regola CA1515
Titolo Prendere in considerazione la possibilità di rendere interni i tipi pubblici
Categoria Manutenibilità
La correzione causa un'interruzione o meno Non causa un'interruzione
Abilitato per impostazione predefinita in .NET 9 NO

Causa

Un tipo all'interno di un assembly eseguibile viene dichiarato come pubblico.

Descrizione regola

A differenza di una libreria di classi, l'API di un'applicazione non viene in genere fatto riferimento pubblicamente, quindi i tipi possono essere contrassegnati come internal.

I tipi interni, a loro volta, possono trarre vantaggio da vari analizzatori di codice destinati a API non pubbliche.

Come correggere le violazioni

Contrassegnare il tipo come internal.

Esempio

Il frammento di codice seguente mostra una violazione di 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

Il frammento di codice seguente corregge la violazione:

// 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

Per altre informazioni sul tipo di output di un progetto, vedere la sezione "Tipo di output" di Progettazione progetti .NET.

Quando eliminare gli avvisi

È possibile eliminare una violazione di questa regola se non si è preoccupati per la manutenibilità del codice.

Eliminare un avviso

Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

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

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none su nel file di configurazione.

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Configurare il codice da analizzare

È possibile configurare i tipi di assembly di output a cui applicare questa regola. Ad esempio, per applicare questa regola solo al codice che produce un'applicazione console o una libreria collegata dinamicamente (ovvero, non un'app dell'interfaccia utente), aggiungere la coppia chiave-valore seguente a un file con estensione editorconfig nel progetto:

dotnet_code_quality.CA1515.output_kind = ConsoleApplication, DynamicallyLinkedLibrary

Per altre informazioni, vedere output_kind.