Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
| 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.