CA1420 : La propriété, le type ou l’attribut nécessite un marshaling au moment de l’exécution
Propriété | Value |
---|---|
Identificateur de la règle | CA1420 |
Titre | La propriété, le type ou l’attribut nécessite un marshaling au moment de l’exécution |
Catégorie | Interopérabilité |
Le correctif est cassant ou non cassant | Rupture |
Activé par défaut dans .NET 8 | Comme avertissement |
Cause
Une fonctionnalité de code utilisée nécessite le marshaling du runtime, et le marshaling du runtime est explicitement désactivé.
Description de la règle
L’utilisation de fonctionnalités qui nécessitent le marshaling du runtime lorsque le marshaling du runtime est désactivé entraîne des exceptions d’exécution.
Comment corriger les violations
Activez le marshaling du runtime ou supprimez le code qui nécessite le marshaling du runtime.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle.
Exemple
L’extrait de code suivant montre une violation de 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
Pour corriger la violation, supprimez l’élément DisableRuntimeMarshallingAttribute sur l’assembly.