Поделиться через


CA2256: все члены, объявленные в родительских интерфейсах, должны иметь реализацию в интерфейсе DynamicInterfaceCastableImplementation-атрибут

Свойство Значение
Идентификатор правила CA2256
Заголовок Все члены, объявленные в родительских интерфейсах, должны иметь реализацию в интерфейсе DynamicInterfaceCastableImplementation-атрибутов.
Категория Использование
Исправление является критическим или не критическим Не критическое
Включен по умолчанию в .NET 10 Как предупреждение

Причина

Интерфейс с DynamicInterfaceCastableImplementationAttribute неисключаемым элементом.

Описание правила

Типы, приписываемые как DynamicInterfaceCastableImplementationAttribute реализация интерфейса для типа, реализующего IDynamicInterfaceCastable тип. В результате он должен предоставить реализацию всех элементов, определенных в унаследованных интерфейсах, так как тип, реализующий IDynamicInterfaceCastable их, не будет предоставлять их в противном случае.

Устранение нарушений

Реализуйте отсутствующие элементы интерфейса.

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()
    {
        // ...
    }
}

Когда следует подавлять ошибки

Для этого правила отключать вывод предупреждений не следует.

См. также