Partager via


CA1515 : envisager de rendre les types publics internes

Propriété Value
Identificateur de la règle CA1515
Titre Envisager de rendre les types publics internes
Catégorie Maintenabilité
Le correctif est cassant ou non cassant Sans rupture
Activée par défaut dans .NET 9 Non

Cause

Un type au sein d’un assembly exécutable est déclaré comme étant public.

Description de la règle

Contrairement à une bibliothèque de classes, l’API d’une application n’est généralement pas référencée de manière publique afin que les types soient marqués internal.

Les types internes, à leur tour, peuvent tirer parti de divers analyseurs de code qui ciblent des API non publiques.

Comment corriger les violations

Marquez le type en tant que internal.

Exemple

L’extrait de code suivant illustre une violation 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

L’extrait de code suivant corrige la violation :

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

Quand supprimer les avertissements

Il est sûr de supprimer une violation de cette règle si vous n’êtes pas préoccupé par la maintenance de votre code.

Supprimer un avertissement

Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.

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

Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.

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

Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.