Anteckning
Å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.
| 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 9 | Som varning |
Orsak
En gränssnittsmedlem är inte uttryckligen implementerad eller markerad static.
Regelbeskrivning
Eftersom en typ som implementerar kanske inte implementerar IDynamicInterfaceCastable ett dynamiskt gränssnitt i metadata, kommer anrop till en instansgränssnittsmedlem som inte är en explicit implementering som definierats för 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.