CA2126: запросы компоновки типа требуют запросы наследования

Товар Значение
Идентификатор правила CA2126
Категория Microsoft.Security
Критическое изменение Критическое

Причина

Общедоступный неуправляемый тип защищен запросом ссылки, имеет переопределенный метод, и ни тип, ни метод не защищается с помощью требования наследования.

Примечание.

Это правило устарело. Дополнительные сведения см. в разделе "Устаревшие правила".

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

Запрос ссылки на метод или его декларативный тип требует немедленного вызывающего метода иметь указанное разрешение. Запрос на наследование для метода требует переопределения метода, чтобы иметь указанное разрешение. Запрос на наследование для типа требует наличия указанного разрешения на производный класс.

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

Чтобы устранить нарушение этого правила, защитите тип или метод с требованием наследования для того же разрешения, что и требование ссылки.

Когда лучше отключить предупреждения

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

Пример

В следующем примере показан тип, нарушающий это правило.

using System;
using System.Security.Permissions;

namespace SecurityLibrary
{
   [EnvironmentPermission(SecurityAction.LinkDemand, Read = "PATH")]
   public class TypesWithLinkDemands
   {
      public virtual void UnsecuredMethod() {}

      [EnvironmentPermission(SecurityAction.InheritanceDemand, Read = "PATH")]
      public virtual void SecuredMethod() { }
   }
}

CA2108: проверьте объявляемые параметры безопасности типов значений

CA2112: защищенные типы не должны предоставлять поля

CA2122: не используйте косвенное представление методов с запросами компоновки

CA2123: запросы компоновки переопределения должны быть идентичны базовым

См. также