Ler em inglês

Compartilhar via


Aviso do compilador (nível 1) CS0688

'method1' tem uma demanda de link, mas substitui ou implementa 'method2' que não tem uma demanda de link. Pode haver uma falha de segurança.

A demanda de link configurada no método de classe derivada pode ser facilmente contornada chamando o método de classe base. Para fechar a falha de segurança, o método de classe base também precisa usar a demanda de link. Para obter mais informações, consulte Demand vs. LinkDemand.

Exemplo

O exemplo a seguir gera o erro CS0688. Para resolver o aviso sem modificar a classe base, remova o atributo de segurança do método de substituição. Isso não resolverá o problema de segurança.

// CS0688.cs  
// compile with: /W:1  
using System;  
using System.Security.Permissions;  
  
class Base
{  
    //Uncomment the following line to close the security hole  
    //[FileIOPermission(SecurityAction.LinkDemand, All=@"C:\\")]  
    public virtual void DoScaryFileStuff()  
    {  
    }  
}  
  
class Derived: Base  
{  
    [FileIOPermission(SecurityAction.LinkDemand, All=@"C:\\")] // CS0688  
    public override void DoScaryFileStuff()  
    {  
    }  
    static void Main()  
    {  
    }  
}