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 9 | 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.