Delen via


CA2257: Leden die zijn gedefinieerd op een interface met de 'DynamicInterfaceCastableImplementationAttribute' moeten statisch zijn

Eigenschappen Weergegeven als
Regel-id CA2257
Titel Leden die zijn gedefinieerd op een interface met de 'DynamicInterfaceCastableImplementationAttribute' moeten statisch zijn
Categorie Gebruik
Oplossing is brekend of niet-brekend Niet-brekend
Standaard ingeschakeld in .NET 10 Als waarschuwing

Oorzaak

Een interfacelid is niet expliciet geïmplementeerd of gemarkeerd static.

Beschrijving van regel

Aangezien een type dat IDynamicInterfaceCastable implementeert, geen dynamische interface in metadata kan implementeren, zullen aanroepen naar een exemplaarinterfacelid dat geen expliciete implementatie op dit type heeft, waarschijnlijk mislukken bij runtime. Als u runtimefouten wilt voorkomen, markeert u nieuwe interfaceleden static.

Schendingen oplossen

Markeer het interfacelid static.

Example

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

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

Wanneer fouten onderdrukken

Een waarschuwing van deze regel niet onderdrukken.

Zie ook