Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
| Propriété | Valeur |
|---|---|
| Identificateur de la règle | CA1420 |
| Titre | La propriété, le type ou l’attribut nécessite un mappage au moment de l’exécution. |
| Catégorie | Interopérabilité |
| Le correctif a un effet disruptif ou non disruptif | Rupture |
| Activé par défaut dans .NET 10 | Comme avertissement |
| Langues applicables | C# et Visual Basic |
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 d’exécution lorsque le marshaling d’exécution 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.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
Pour corriger la violation, supprimez l’élément DisableRuntimeMarshallingAttribute dans l’assemblage.