CA2255: Attributet ModuleInitializer
ska inte användas i bibliotek
Property | Värde |
---|---|
Regel-ID | CA2255 |
Title | Attributet ModuleInitializer ska inte användas i bibliotek |
Kategori | Användning |
Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
Aktiverad som standard i .NET 9 | Som varning |
Orsak
Tillämpa på ModuleInitializerAttribute en metod i ett klassbibliotek.
Regelbeskrivning
Modulinitierare är avsedda att användas av programkod för att säkerställa att ett programs komponenter initieras innan programkoden börjar köras. Om bibliotekskoden deklarerar en metod med ModuleInitializerAttributekan den störa programinitiering och även leda till begränsningar i programmets trimningsfunktioner. Bibliotekskoden bör därför inte använda attributet ModuleInitializerAttribute .
Så här åtgärdar du överträdelser
I stället för att använda metoder som är markerade med ModuleInitializerAttributeska biblioteket exponera metoder som kan användas för att initiera alla komponenter i biblioteket och tillåta att programmet anropar metoden under programinitieringen.
När du ska ignorera varningar
Det är säkert att ignorera varningar från den här regeln om en lösning använder ett klassbibliotek i kodfaktorsyfte och metoden inte ingår i ModuleInitializerAttribute ett delat eller distribuerat bibliotek eller paket.
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 CA2255
// The code that's violating the rule is on this line.
#pragma warning restore CA2255
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.CA2255.severity = none
Om du vill inaktivera hela den här regelkategorin anger du allvarlighetsgraden för kategorin till none
i konfigurationsfilen.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Usage.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.