CA2257: Medlemmar som definierats i ett gränssnitt med "DynamicInterfaceCastableImplementationAttribute" ska vara "statiska"

Property Värde
Regel-ID CA2257
Title Medlemmar som definierats i ett gränssnitt med "DynamicInterfaceCastableImplementationAttribute" ska vara "statiska"
Kategori Användning
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard i .NET 10 Som varning

Orsak

En gränssnittsmedlem är inte uttryckligen implementerad eller markerad static.

Regelbeskrivning

Eftersom en typ som implementerar IDynamicInterfaceCastable kanske inte implementerar ett dynamiskt gränssnitt i metadata, kommer anrop till en instansgränssnittsmedlem som inte är en explicit implementering definierad på den här typen sannolikt att misslyckas vid körning. Om du vill undvika körningsfel markerar du nya gränssnittsmedlemmar static.

Så här åtgärdar du överträdelser

Markera gränssnittsmedlemmen static.

Example

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

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

När fel ska ignoreras

Ignorera inte en varning från den här regeln.

Se även