Udostępnij za pośrednictwem


CA2121: Konstruktory statyczne powinny być prywatne

TypeName

StaticConstructorsShouldBePrivate

CheckId

CA2121

Kategoria

Microsoft.Security

Złamanie zmiany

Złamanie

Przyczyna

Typ ma w konstruktorze statycznym, który nie jest oznaczony jako prywatny.

Opis reguły

Konstruktorze statycznym, znany również jako konstruktora klasy, jest używany do inicjowania typu.System wywołuje w konstruktorze statycznym przed pierwsze wystąpienie typu jest tworzony lub odwołuje się żadnych statycznych elementów członkowskich.Użytkownik nie ma kontroli nad gdy jest wywoływana w konstruktorze statycznym.Jeżeli konstruktorze statycznym nie jest oznaczony jako prywatny, może być zwołane przez kod, innych niż system.W zależności od czynności, które są wykonywane w konstruktorze może to spowodować nieoczekiwane zachowanie.

Reguła ta jest wymuszana przez C# i Visual Basic.Kompilatory netto.

Jak naprawić naruszenia

Naruszenia są zazwyczaj spowodowane jedną z następujących czynności:

  • Zdefiniowane w konstruktorze statycznym typu i nie zgłosili go prywatnych.

  • Kompilator języka programowania dodaje domyślnego konstruktora statycznego do typu i nie zgłosili go prywatnych.

Ustalenie pierwszego rodzaju naruszenia, ustawianie prywatnych sieci w konstruktorze statycznym.Aby rozwiązać problem drugiego rodzaju, należy dodać prywatnych konstruktora statycznego do typu.

Kiedy do pomijania ostrzeżenia

Nie pomijaj tych naruszeń.Jeśli projekt oprogramowania wymaga jawnym wywołaniem konstruktora statycznego, jest prawdopodobne, że projekt zawiera poważne niedociągnięcia i powinny być poddane przeglądowi.