CA2255: Atrybut ModuleInitializer
nie powinien być używany w bibliotekach
Właściwości | Wartość |
---|---|
Identyfikator reguły | CA2255 |
Tytuł | Atrybut ModuleInitializer nie powinien być używany w bibliotekach |
Kategoria | Użycie |
Poprawka powodująca niezgodność lub niezgodność | Niezgodność |
Domyślnie włączone na platformie .NET 9 | Jako ostrzeżenie |
Przyczyna
ModuleInitializerAttribute Stosowanie do metody w bibliotece klas.
Opis reguły
Inicjatory modułów mają być używane przez kod aplikacji, aby upewnić się, że składniki aplikacji są inicjowane przed rozpoczęciem wykonywania kodu aplikacji. Jeśli kod biblioteki deklaruje metodę za pomocą ModuleInitializerAttributemetody , może zakłócać inicjowanie aplikacji, a także prowadzić do ograniczeń w możliwościach przycinania tej aplikacji. W związku z tym kod biblioteki nie powinien używać atrybutu ModuleInitializerAttribute .
Jak naprawić naruszenia
Zamiast używać metod oznaczonych za pomocą ModuleInitializerAttributemetody , biblioteka powinna uwidocznić metody, które mogą służyć do inicjowania dowolnych składników w bibliotece i zezwalania aplikacji na wywoływanie metody podczas inicjowania aplikacji.
Kiedy pomijać ostrzeżenia
Można bezpiecznie pominąć ostrzeżenia z tej reguły, jeśli rozwiązanie używa biblioteki klas do celów faktorowania kodu, a ModuleInitializerAttribute metoda nie jest częścią udostępnionej lub rozproszonej biblioteki lub pakietu.
Pomijanie ostrzeżenia
Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable CA2255
// The code that's violating the rule is on this line.
#pragma warning restore CA2255
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.CA2255.severity = none
Aby wyłączyć tę całą kategorię reguł, ustaw ważność dla kategorii na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Usage.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.