CA2121: Statische Konstruktoren sollten privat sein.
Element | Wert |
---|---|
RuleId | CA2121 |
Category | Microsoft.Security |
Unterbrechende Änderung | Breaking |
Ursache
Ein Typ verfügt über einen statischen Konstruktor, der nicht privat ist.
Hinweis
Diese Regel wurde als veraltet markiert. Weitere Informationen finden Sie unter Veraltete Regeln.
Regelbeschreibung
Ein statischer Konstruktor, der auch als Klassenkonstruktor bezeichnet wird, wird verwendet, um einen Typ zu initialisieren. Das System ruft den statischen Konstruktor auf, bevor die erste Instanz des Typs erzeugt wird bzw. bevor auf irgendwelche statischen Member verwiesen wird. Der Benutzer hat keine Kontrolle darüber, wann der statische Konstruktor aufgerufen wird. Wenn ein statischer Konstruktor nicht privat ist, kann er von Code aufgerufen werden, der nicht Systemcode ist. Je nach den Operationen innerhalb des Konstruktors kann dies zu unerwartetem Verhalten führen.
Diese Regel wird von den C#- und Visual Basic-Compilern angewendet.
Behandeln von Verstößen
Verstöße werden in der Regel durch eine der folgenden Aktionen verursacht:
Sie haben einen statischen Konstruktor für Ihren Typ definiert und nicht als privat festgelegt.
Der Programmiersprachencompiler hat Ihrem Typ einen statischen Standardkonstruktor hinzugefügt und ihn nicht als privat festgelegt.
Den ersten Verstoß können Sie beheben, indem Sie Ihren statischen Konstruktor als privat festlegen. Den zweiten Verstoß können Sie beheben, indem Sie Ihrem Typ einen privaten statischen Konstruktor hinzufügen.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie diese Verstöße nicht. Wenn Ihr Softwareentwurf einen expliziten Aufruf eines statischen Konstruktors erfordert, enthält der Entwurf wahrscheinlich schwerwiegende Fehler und sollte überprüft werden.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für