Číst v angličtině

Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 1) CS0688

Metoda1 má požadavek na propojení, ale přepíše nebo implementuje metodu 2, která nemá požadavek na propojení. Může existovat bezpečnostní díra.

Požadavek na propojení nastavený na metodu odvozené třídy lze snadno obejít voláním metody základní třídy. K zavření bezpečnostní díry potřebuje metoda základní třídy také použít poptávku po propojení. Další informace najdete v tématu Poptávka vs. LinkDemand.

Příklad

Následující ukázka vygeneruje CS0688. Chcete-li vyřešit upozornění bez úpravy základní třídy, odeberte atribut zabezpečení z přepsání metody. Tím se problém se zabezpečením nevyřeší.

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