Бөлісу құралы:


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

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

Причина

Интерфейс с 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()
    {
        // ...
    }
}

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

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

См. также