CA1420: Właściwość, typ lub atrybut wymagają marshalingu środowiska uruchomieniowego

Właściwości Wartość
Identyfikator reguły CA1420
Tytuł Właściwość, typ lub atrybut wymagają marshalingu środowiska uruchomieniowego
Kategoria Współdziałanie
Poprawka powodująca niezgodność lub niezgodność Kluczowa
Domyślnie włączone na platformie .NET 8 Jako ostrzeżenie

Przyczyna

Funkcja kodu jest używana, która wymaga marshalingu środowiska uruchomieniowego, a marshalling środowiska uruchomieniowego jest jawnie wyłączony.

Opis reguły

Korzystanie z funkcji wymagających marshalingu środowiska uruchomieniowego po wyłączeniu marshalingu środowiska uruchomieniowego spowoduje wyjątki czasu wykonywania.

Jak naprawić naruszenia

Włącz marshaling środowiska uruchomieniowego lub usuń kod, który wymaga marshalingu środowiska uruchomieniowego.

Kiedy pomijać ostrzeżenia

Nie pomijaj ostrzeżenia z tej reguły.

Przykład

Poniższy fragment kodu przedstawia naruszenie 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

Aby naprawić naruszenie, usuń element DisableRuntimeMarshallingAttribute w zestawie.