Partager via


CA1515 : envisager de rendre les types publics internes

Propriété Valeur
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é par défaut dans .NET 10 Non

La 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)
    {
    }
}
' Inside a project with <OutputKind>Exe</OutputKind>.
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)
    {
    }
}
' Inside a project with <OutputKind>Exe</OutputKind>.
Friend Class Program
    Public Shared Sub Main(args As string())
    End Sub
End Class

(Pour plus d’informations sur le type de sortie d’un projet, consultez la section « Type de sortie » du Concepteur de projets .NET.)

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.

Configurer le code à analyser

Vous pouvez configurer les types d’assemblys de sortie auxquels appliquer cette règle. Par exemple, pour appliquer cette règle uniquement au code qui produit une application console ou une bibliothèque liée dynamiquement (autrement dit, pas une application d’interface utilisateur), ajoutez la paire clé-valeur suivante à un fichier .editorconfig dans votre projet :

dotnet_code_quality.CA1515.output_kind = ConsoleApplication, DynamicallyLinkedLibrary

Pour plus d’informations, consultez output_kind.