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, která může být destruktivní nebo nedestruktivní Nezlomitelný
Povoleno ve výchozím nastavení v .NET 10 Jako upozornění
Příslušné jazyky C# a Visual Basic

Příčina

Použití ModuleInitializerAttribute 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 ModuleInitializerAttribute, může zasahovat do inicializace aplikace a také vést k omezení možností 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 ModuleInitializerAttribute by knihovna měla vystavit metody, které lze použít k inicializaci všech komponent v knihovně a které umožní 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é