CA2135: сборки уровня 2 не должны содержать требования LinkDemand
TypeName |
SecurityRuleSetLevel2MethodsShouldNotBeProtectedWithLinkDemands |
CheckId |
CA2135 |
Категория |
Microsoft.Security |
Критическое изменение |
Критическое изменение |
Причина
Класс или элемент класса использует LinkDemand в приложении, использующем уровень безопасности 2.
Описание правила
Требования LinkDemand являются устаревшими в наборе правил безопасности уровня 2. Вместо использования требования LinkDemand для обеспечения безопасности во время JIT-компиляции пометьте методы, типы и поля атрибутом SecurityCriticalAttribute.
Устранение нарушений
Чтобы устранить нарушение данного правила, удалите LinkDemand или отметьте тип или член атрибутом SecurityCriticalAttribute.
Отключение предупреждений
Для этого правила отключать вывод предупреждений не следует.
Пример
В следующем примере объект LinkDemand, который должен быть удален, и метод помечены атрибутом SecurityCriticalAttribute.
using System;
using System.Security;
using System.Security.Permissions;
namespace TransparencyWarningsDemo
{
public class MethodsProtectedWithLinkDemandsClass
{
// CA2135 violation - the LinkDemand should be removed, and the method marked [SecurityCritical] instead
[SecurityPermission(SecurityAction.LinkDemand, UnmanagedCode = true)]
public void ProtectedMethod()
{
}
}
}