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 | CA2256 |
| Title | All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface |
| Category | Usage |
| Fix is breaking or non-breaking | Non-breaking |
| Enabled by default in .NET 9 | As warning |
Cause
An interface with DynamicInterfaceCastableImplementationAttribute has a non-implemented member.
Rule description
Types attributed with DynamicInterfaceCastableImplementationAttribute act as an interface implementation for a type that implements the IDynamicInterfaceCastable type. As a result, it must provide an implementation of all of the members defined in the inherited interfaces, because the type that implements IDynamicInterfaceCastable will not provide them otherwise.
How to fix violations
Implement the missing interface members.
Example
interface IParent
{
void ParentMethod();
}
// This interface violates the rule.
[DynamicInterfaceCastableImplementation]
interface IBadChild : IParent
{
static void ChildMethod()
{
// ...
}
}
// This interface satisfies the rule.
[DynamicInterfaceCastableImplementation]
interface IGoodChild : IParent
{
static void ChildMethod()
{
// ...
}
void IParent.ParentMethod()
{
// ...
}
}
When to suppress errors
Do not suppress a warning from this rule.