CA1420: Egenskap, typ eller attribut kräver runtime-marshalling
Property | Värde |
---|---|
Regel-ID | CA1420 |
Title | Egenskap, typ eller attribut kräver runtime-marshalling |
Kategori | Samverkan |
Korrigeringen är icke-bakåtkompatibel | Brott |
Aktiverad som standard i .NET 9 | Som varning |
Orsak
En kodfunktion används som kräver runtime-marshalling och runtime-marshalling är uttryckligen inaktiverad.
Regelbeskrivning
Om du använder funktioner som kräver runtime-marshalling när runtime-marshalling inaktiveras resulterar det i körningsundatag.
Så här åtgärdar du överträdelser
Aktivera runtime-marshalling eller ta bort koden som kräver runtime-marshalling.
När du ska ignorera varningar
Ignorera inte en varning från den här regeln.
Exempel
Följande kodfragment visar ett brott mot 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
Åtgärda överträdelsen genom att DisableRuntimeMarshallingAttribute ta bort på sammansättningen.
Samarbeta med oss på GitHub
Källan för det här innehållet finns på GitHub, där du även kan skapa och granska ärenden och pull-begäranden. Se vår deltagarguide för mer information.