CA1420: Proprietà, tipo o attributo richiede il marshalling di runtime

Proprietà valore
ID regola CA1420
Title La proprietà, il tipo o l'attributo richiede il marshalling di runtime
Categoria Interoperabilità
Correzione che causa un'interruzione o un'interruzione Interruzione
Abilitato per impostazione predefinita in .NET 8 Come avviso

Causa

Viene usata una funzionalità di codice che richiede il marshalling di runtime e il marshalling di runtime è disabilitato in modo esplicito.

Descrizione regola

L'uso di funzionalità che richiedono il marshalling di runtime quando il marshalling di runtime è disabilitato genererà eccezioni in fase di esecuzione.

Come correggere le violazioni

Abilitare il marshalling di runtime o rimuovere il codice che richiede il marshalling di runtime.

Quando eliminare gli avvisi

Non eliminare un avviso da questa regola.

Esempio

Il frammento di codice seguente mostra una violazione di 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

Per correggere la violazione, rimuovere l'oggetto DisableRuntimeMarshallingAttribute nell'assembly.