Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
CA2255: Het
| Eigenschap | Waarde |
|---|---|
| Regel-id | CA2255 |
| Titel | Het ModuleInitializer kenmerk mag niet worden gebruikt in bibliotheken |
| Categorie | Gebruik |
| Fix kan brekend of niet-brekend zijn | Niet-brekend |
| Standaard ingeschakeld in .NET 10 | Als waarschuwing |
| Toepasselijke talen | C# en Visual Basic |
Oorzaak
Toepassen van ModuleInitializerAttribute op een methode binnen een klassebibliotheek.
Beschrijving van regel
Module-initializers zijn bedoeld om te worden gebruikt door toepassingscode om ervoor te zorgen dat de onderdelen van een toepassing worden geïnitialiseerd voordat de toepassingscode wordt uitgevoerd. Als bibliotheekcode een methode declareert met de ModuleInitializerAttribute, kan dit de initialisatie van toepassingen verstoren en leiden tot beperkingen in de trimmogelijkheden van die toepassing. Bibliotheekcode mag daarom niet gebruikmaken van het ModuleInitializerAttribute kenmerk.
Hoe schendingen op te lossen
In plaats van methoden te gebruiken die zijn gemarkeerd ModuleInitializerAttribute, moet de bibliotheek methoden beschikbaar maken die kunnen worden gebruikt om onderdelen in de bibliotheek te initialiseren en de toepassing de methode te laten aanroepen tijdens de initialisatie van de toepassing.
Wanneer waarschuwingen onderdrukken
Het is veilig om waarschuwingen van deze regel te onderdrukken als een oplossing gebruikmaakt van een klassebibliotheek voor codefactoringdoeleinden en de ModuleInitializerAttribute methode geen deel uitmaakt van een gedeelde of gedistribueerde bibliotheek of pakket.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA2255
// The code that's violating the rule is on this line.
#pragma warning restore CA2255
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA2255.severity = none
Als u deze hele categorie regels wilt uitschakelen, stelt u de ernst voor de categorie none in op in het configuratiebestand.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Usage.severity = none
Zie voor meer informatie Hoe codeanalysewaarschuwingen te onderdrukken.