CA2255: Atribut ModuleInitializer
by neměl být použit v knihovnách
Vlastnost | Hodnota |
---|---|
ID pravidla | CA2255 |
Název | Atribut ModuleInitializer by se neměl používat v knihovnách. |
Kategorie | Využití |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení v .NET 9 | Jako upozornění |
Příčina
ModuleInitializerAttribute Použití na metodu v knihovně tříd
Popis pravidla
Inicializátory modulů jsou určeny k použití kódu aplikace k zajištění inicializace komponent aplikace před zahájením provádění kódu aplikace. Pokud kód knihovny deklaruje metodu s metodou ModuleInitializerAttribute, může kolidovat s inicializací aplikace a také vést k omezením schopností ořezávání aplikace. Kód knihovny by proto neměl atribut využívat ModuleInitializerAttribute .
Jak opravit porušení
Místo použití metod označených ModuleInitializerAttributepomocí knihovny by knihovna měla vystavit metody, které lze použít k inicializaci všech komponent v knihovně a umožnit aplikaci vyvolat metodu během inicializace aplikace.
Kdy potlačit upozornění
Upozornění z tohoto pravidla je bezpečné potlačit, pokud řešení používá knihovnu tříd pro účely faktoringu kódu a ModuleInitializerAttribute metoda není součástí sdílené nebo distribuované knihovny nebo balíčku.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable CA2255
// The code that's violating the rule is on this line.
#pragma warning restore CA2255
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none
konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.CA2255.severity = none
Chcete-li tuto celou kategorii pravidel zakázat, nastavte závažnost kategorie na none
hodnotu v konfiguračním souboru.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Usage.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.