Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
| Fastighet | Värde |
|---|---|
| Regel-ID | CA1515 |
| Titel | Överväg att göra offentliga typer interna |
| Kategori | Underhåll |
| Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
| Aktiverad som standard i .NET 9 | Nej |
Orsak
En typ i en körbar sammansättning deklareras som offentlig.
Regelbeskrivning
Till skillnad från ett klassbibliotek refereras normalt inte ett programs API offentligt, så typer kan markeras internal.
Interna typer kan i sin tur dra nytta av olika kodanalysverktyg som riktar in sig på icke-offentliga API:er.
Så här åtgärdar du överträdelser
Markera typen som internal.
Exempel
Följande kodfragment visar ett brott mot 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
Följande kodfragment åtgärdar överträdelsen:
// 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
(Mer information om utdatatypen för ett projekt finns i avsnittet "Utdatatyp" i .NET Project Designer.)
När du ska ignorera varningar
Det är säkert att förhindra en överträdelse av den här regeln om du inte bryr dig om kodens underhållbarhet.
Ignorera en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.
#pragma warning disable CA1515
// The code that's violating the rule is on this line.
#pragma warning restore CA1515
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.CA1515.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.
Konfigurera kod för analys
Du kan konfigurera vilka typer av utdatasammansättning som den här regeln ska tillämpas på. Om du till exempel bara vill tillämpa den här regeln på kod som skapar ett konsolprogram eller ett dynamiskt länkat bibliotek (dvs. inte en UI-app) lägger du till följande nyckel/värde-par i en .editorconfig-fil i projektet:
dotnet_code_quality.CA1515.output_kind = ConsoleApplication, DynamicallyLinkedLibrary
Mer information finns i output_kind.