CA1420: Eigenschaft, Typ oder Attribut erfordert Runtime-Marshalling

Eigenschaft Wert
Regel-ID CA1420
Titel Eigenschaft, Typ oder Attribut erfordert Runtime-Marshalling
Kategorie Interoperabilität
Fix führt oder führt nicht zur Unterbrechung Breaking
Standardmäßig in .NET 9 aktiviert Als Warnung

Ursache

Es wird ein Codefeature verwendet, das Runtime-Marshalling erfordert, und das Runtime-Marshalling ist explizit deaktiviert.

Regelbeschreibung

Die Verwendung von Features, die Runtime-Marshalling erfordern, wenn das Runtime-Marshalling deaktiviert ist, führt zu Laufzeitausnahmen.

Behandeln von Verstößen

Aktivieren Sie das Runtime-Marshalling, oder entfernen Sie den Code, der Runtime-Marshalling erfordert.

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie Warnungen dieser Regel nicht.

Beispiel

Der folgende Codeschnipsel zeigt eine Verletzung von CA1420:

using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;

[assembly: DisableRuntimeMarshalling]

class C
{
    // Violates rule CA1420.
    [DllImport("NativeLibrary", SetLastError = true)]
    public static extern void MyMethod ();
}
Imports System.Runtime.InteropServices
Imports System.Runtime.CompilerServices

<Assembly: DisableRuntimeMarshalling>

Class C
    ' Violates rule CA1420.
    <DllImport("NativeLibrary", SetLastError:=True)>
    Public Shared Sub MyMethod()
        '...
    End Sub
End Class

Entfernen Sie das DisableRuntimeMarshallingAttribute in der Assembly, um die Verletzung zu beheben.