Compartilhar via


CA2135: Módulos (assemblies) de nível 2 não deve conter LinkDemands

TypeName

SecurityRuleSetLevel2MethodsShouldNotBeProtectedWithLinkDemands

CheckId

CA2135

<strong>Categoria</strong>

Microsoft.Security

Alteração significativa

Quebrando

Causa

Uma classe ou membro da classe está usando um LinkDemand em um aplicativo que está usando segurança de nível 2.

Descrição da regra

LinkDemands estão obsoletas no conjunto de regras de segurança de nível 2.Em vez de usar LinkDemands para reforçar a segurança em tempo de compilação just-in-time (JIT), marcar os métodos, tipos e campos com o SecurityCriticalAttribute atributo.

Como corrigir violações

Para corrigir uma violação desta regra, remova o LinkDemand e marcar o tipo ou membro com o SecurityCriticalAttribute atributo.

Quando suprimir avisos

Não suprimir um aviso da regra.

Exemplo

No exemplo a seguir, o LinkDemand deve ser removido e o método marcado com o SecurityCriticalAttribute atributo.

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