CA2001: Keine problematischen Methoden aufrufen

TypeName

AvoidCallingProblematicMethods

CheckId

CA2001

Kategorie (Category)

Microsoft.Reliability

Unterbrechende Änderung

Nicht unterbrechend

Ursache

Ein Member ruft eine möglicherweise gefährliche oder problematische Methode auf.

Regelbeschreibung

Vermeiden Sie überflüssige und möglicherweise gefährliche Methodenaufrufe.

Eine Verletzung dieser Regel tritt auf, wenn ein Member eine der folgenden Methoden aufruft.

Methode

Beschreibung

GC.Collect

Der Aufruf von GC.Collect kann die Anwendungsleistung bedeutend beeinträchtigen und ist selten notwendig.Weitere Informationen finden Sie im Leistung Leckerbissen Rico Marianis Blogeintrag auf MSDN.

Thread.Resume

Thread.Suspend

"Thread.Suspend" und "Thread.Resume" sind wegen ihres unvorhersehbaren Verhaltens nun veraltet. Verwenden Sie andere Klassen im System.Threading-Namespace, z. B. Monitor, [T:System.Threading.Mutex,], Mutex und Semaphore, um Threads zu synchronisieren oder Ressourcen zu schützen.

SafeHandle.DangerousGetHandle

Die DangerousGetHandle-Methode stellt ein Sicherheitsrisiko dar, da es ein Handle zurückgeben kann, das nicht gültig ist.Weitere Informationen zum sicheren Verwenden der DangerousGetHandle-Methode finden Sie in der DangerousAddRef-Methode und in der DangerousRelease-Methode.

Assembly.LoadFrom

Assembly.LoadFile

Assembly.LoadWithPartialName

Diese Methoden können Assemblys von unerwarteten Speicherorten laden.Ein Beispiel finden Sie unter Hinweisblogbeiträge .NET CLR Suzanne-Kochs LoadFile für LoadFrom und Auswählen eines Bindungskontextes auf der MSDN-Website zu Informationen über Methoden, die Assemblys laden.

CoSetProxyBlanket (Ole32)

CoInitializeSecurity (Ole32)

Sobald die Ausführung des Benutzercodes in einem verwalteten Prozess gestartet wird, ist es zu spät, CoSetProxyBlanket zuverlässig aufzurufen.Die Common Language Runtime (CLR) führt Initialisierungsaktionen aus, die möglicherweise verhindern, dass ein P/Invoke von Benutzern erfolgreich ist.

Wenn CoSetProxyBlanket jedoch für eine verwaltete Anwendung aufgerufen werden muss, wird empfohlen, den Prozess unter Verwendung von systemeigenem, ausführbarem Code (C++) zu starten, CoSetProxyBlanket im systemeigenen Code aufzurufen und anschließend die Anwendung mit verwaltetem Code im Prozess auszuführen. (Achten Sie darauf, eine Versionsnummer für die Laufzeit anzugeben.)

Behandeln von Verstößen

Um einen Verstoß gegen diese Regel zu beheben, entfernen oder ersetzen Sie den Aufruf der gefährlichen oder problematischen Methode.

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie Meldungen von dieser Regel nur, wenn keine Alternativen zu der problematischen Methode vorhanden sind.

Siehe auch

Weitere Ressourcen

Zuverlässigkeitswarnungen