Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| Eigenschap | Waarde |
|---|---|
| Regel-id | CA2257 |
| Titel | Leden die zijn gedefinieerd op een interface met de 'DynamicInterfaceCastableImplementationAttribute' moeten statisch zijn |
| Categorie | Gebruik |
| Fix kan brekend of niet-brekend zijn | Niet-brekend |
| Standaard ingeschakeld in .NET 10 | Als waarschuwing |
| Toepasselijke talen | C# en Visual Basic |
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.
Hoe schendingen op te lossen
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.