aviso do compilador (nível 1) CS0688

Mensagem de erro

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

A demanda de link definido no método de classe derivada pode ser com com facilidade evitada chamando o método de classe base.Para fechar a falha de segurança, o método da classe base precisa usar também a demanda de link.Para obter mais informações, consulte Demanda versus LinkDemand.

Exemplo

O exemplo a seguir gera 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()
    {
    }
}