Delen via


CA1420: Voor eigenschap, type of kenmerk is runtime-marshalling vereist

Eigenschappen Weergegeven als
Regel-id CA1420
Titel Voor eigenschap, type of kenmerk is runtime-marshalling vereist
Categorie Interoperabiliteit
Oplossing is brekend of niet-brekend Breken
Standaard ingeschakeld in .NET 9 Als waarschuwing

Oorzaak

Er wordt een codefunctie gebruikt waarvoor runtime-marshalling is vereist en runtime-marshalling expliciet is uitgeschakeld.

Beschrijving van regel

Het gebruik van functies waarvoor runtime-marshalling is vereist wanneer runtime marshalling is uitgeschakeld, leidt tot runtime-uitzonderingen.

Schendingen oplossen

Schakel runtime-marshalling in of verwijder de code waarvoor runtime-marshalling is vereist.

Wanneer waarschuwingen onderdrukken

Een waarschuwing van deze regel niet onderdrukken.

Opmerking

Het volgende codefragment toont een schending van 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

Als u de schending wilt oplossen, verwijdert u de DisableRuntimeMarshallingAttribute assembly.