Condividi tramite


CA1420: La proprietà, il tipo o l'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à
La correzione causa un'interruzione o meno Interruzione
Abilitato per impostazione predefinita in .NET 10 A titolo di avvertimento
Linguaggi applicabili C# e Visual Basic

Causa

Viene utilizzata una caratteristica del codice che richiede il marshalling in fase di esecuzione, ma il marshalling in fase di esecuzione è disabilitato esplicitamente.

Descrizione regola

L'uso di funzionalità che richiedono il marshalling di runtime, quando tale marshalling è disabilitato, genererà eccezioni a runtime.

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

Per correggere la violazione, rimuovere il DisableRuntimeMarshallingAttribute nell'assembly.