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