CA1401: P/Invokes dürfen nicht sichtbar sein
Eigenschaft | Wert |
---|---|
Regel-ID | CA1401 |
Titel | P/Invokes dürfen nicht sichtbar sein. |
Kategorie | Interoperabilität |
Fix führt oder führt nicht zur Unterbrechung | Breaking |
Standardmäßig in .NET 9 aktiviert | Als Vorschlag |
Eine öffentliche oder geschützte Methode in einem öffentlichen Typ weist das System.Runtime.InteropServices.DllImportAttribute-Attribut auf (wird auch durch das Declare
-Schlüsselwort in Visual Basic implementiert).
Methoden, die mit dem DllImportAttribute-Attribut gekennzeichnet sind (oder Methoden, die in Visual Basic mithilfe des Declare
-Schlüsselworts definiert wurden), nutzen Plattform-Invocation-Dienste, um auf nicht verwalteten Code zuzugreifen. Solche Methoden sollten nicht verfügbar gemacht werden. Wenn Sie diese Methoden als privat oder intern aufbewahren, stellen Sie sicher, dass die Bibliothek nicht zum verletzen der Sicherheit verwendet werden kann, indem sie Aufrufern Zugriff auf nicht verwaltete APIs gewähren, die nicht anderweitig aufgerufen werden konnten.
Um einen Verstoß gegen diese Regel zu beheben, ändern Sie die Zugriffsebene der Methode.
Unterdrücken Sie keine Warnung dieser Regel.
Im folgenden Beispiel wird eine Methode deklariert, die gegen diese Regel verstößt.
// Violates rule: PInvokesShouldNotBeVisible.
public class NativeMethods
{
[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
public static extern bool RemoveDirectory(string name);
}
Imports System
Namespace ca1401
' Violates rule: PInvokesShouldNotBeVisible.
Public Class NativeMethods
Public Declare Function RemoveDirectory Lib "kernel32" (
ByVal Name As String) As Boolean
End Class
End Namespace
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: