CA1420: Egenskap, typ eller attribut kräver runtime-marshalling

Egenskap Värde
Regel-ID CA1420
Title Egenskap, typ eller attribut kräver runtime-marshalling
Kategori Samverkan
Korrigeringen är antingen invasiv eller icke-invasiv Avbrott
Aktiverad som standard i .NET 10 Som varning
Tillämpliga språk C# och Visual Basic

Orsak

En kodfunktion används som kräver runtime-marshalling, och runtime-marshalling är uttryckligen avaktiverad.

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.CompilerServices;
using System.Runtime.InteropServices;

[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 ta bort DisableRuntimeMarshallingAttribute från sammanställningen.