Dela via


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

Egenskap Värde
Regel-ID CA2257
Title Medlemmar som definierats i ett gränssnitt med "DynamicInterfaceCastableImplementationAttribute" ska vara "statiska"
Kategori Användning
Korrigeringen är antingen invasiv eller icke-invasiv Oumbrytbar
Aktiverad som standard i .NET 10 Som varning
Tillämpliga språk C# och Visual Basic

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 man ska undertrycka fel

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

Se även