Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
| Property | Value |
|---|---|
| Rule ID | CA2257 |
| Title | Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static' |
| Category | Usage |
| Fix is breaking or non-breaking | Non-breaking |
| Enabled by default in .NET 10 | As warning |
Cause
An interface member isn't explicitly implemented or marked static.
Rule description
Since a type that implements IDynamicInterfaceCastable may not implement a dynamic interface in metadata, calls to an instance interface member that is not an explicit implementation defined on this type are likely to fail at runtime. To avoid runtime errors, mark new interface members static.
How to fix violations
Mark the interface member static.
Example
[DynamicInterfaceCastableImplementation]
interface IExample
{
// This method violates the rule.
void BadMethod();
// This method satisfies the rule.
static void GoodMethod()
{
// ...
}
}
When to suppress errors
Do not suppress a warning from this rule.