Partager via


CA2257 : les membres définis sur une interface avec « DynamicInterfaceCastableImplementationAttribute » doivent être « static »

Propriété Valeur
Identificateur de la règle CA2257
Titre Les membres définis sur une interface avec 'DynamicInterfaceCastableImplementationAttribute' doivent être 'static'
Catégorie Utilisation
Le correctif a un effet disruptif ou non disruptif Sans rupture
Activé par défaut dans .NET 10 Comme avertissement
Langues applicables C# et Visual Basic

Cause

Un membre d’interface n’est pas explicitement implémenté ou marqué static.

Description de la règle

Étant donné qu’un type qui implémente IDynamicInterfaceCastable peut ne pas implémenter une interface dynamique dans les métadonnées, les appels à un membre d’interface d’instance qui n’est pas une implémentation explicite définie sur ce type sont susceptibles d’échouer pendant l'exécution. Pour éviter les erreurs d’exécution, marquez les nouveaux membres staticde l’interface.

Comment corriger les violations

Marquez le membre de l’interface static.

Example

[DynamicInterfaceCastableImplementation]
interface IExample
{
    // This method violates the rule.
    void BadMethod();

    // This method satisfies the rule.
    static void GoodMethod()
    {
        // ...
    }
}

Quand supprimer les erreurs

Ne supprimez pas un avertissement provenant de cette règle.

Voir aussi