Freigeben über


CA2257: Die für eine Schnittstelle mit dem "DynamicInterfaceCastableImplementationAttribute" definierten Member müssen "static" sein

Eigenschaft Wert
Regel-ID CA2257
Titel Für eine Schnittstelle mit dem „DynamicInterfaceCastableImplementationAttribute“ definierte Member sollten statisch sein.
Kategorie Verwendung
Fix führt zu Unterbrechungen oder bleibt funktionsfähig Untrennbar
Standardmäßig in .NET 10 aktiviert Als Warnung
Anwendbare Sprachen C# und Visual Basic

Ursache

Ein Schnittstellenmember wird nicht explizit implementiert oder als static markiert.

Regelbeschreibung

Da ein Typ, der IDynamicInterfaceCastable implementiert, möglicherweise keine dynamische Schnittstelle in den Metadaten implementieren kann, werden Aufrufe eines Instanzschnittstellenmitglieds, das nicht als explizit für diesen Typ implementiert definiert ist, wahrscheinlich zur Laufzeit fehlschlagen. Um Laufzeitfehler zu vermeiden, markieren Sie neue Schnittstellenmitglieder static.

So beheben Sie Verstöße

Markieren Sie das Schnittstellenmitglied static.

Example

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

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

Wann Fehler unterdrücken

Unterdrücken Sie keine Warnung dieser Regel.

Siehe auch