Avviso del compilatore (livello 1) CS0688

Aggiornamento: novembre 2007

Messaggio di errore

'metodo1' è associato a una richiesta di collegamento, ma esegue l'override di 'metodo2' o lo implementa. È possibile un problema di protezione.
'method1' has a link demand, but overrides or implements 'method2' which does not have a link demand. A security hole may exist.

La richiesta di collegamento associata al metodo della classe derivata può essere facilmente ignorata chiamando il metodo della classe base. Per risolvere il problema di protezione, è necessario che la richiesta di collegamento sia associata anche dal metodo della classe base. Per ulteriori informazioni, vedere Demand e LinkDemand.

Esempio

Il seguente codice di esempio genera l'avviso CS0688. Per correggere l'errore senza modificare la classe base, rimuovere l'attributo di protezione dal metodo che esegue l'override. Questa operazione non risolverà il problema di protezione.

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