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