Sdílet prostřednictvím


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 8 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.

Viz také