閱讀英文

共用方式為


編譯器警告 (層級 1) CS0688

'method1' 有連結需求,但是會覆寫或實作沒有連結需求的 'method2'。 可能會產生安全性弱點。

藉由呼叫基底類別方法,即可輕鬆地規避衍生類別方法上所設定的連結需求。 若要關閉安全性漏洞,基底類別方法也必須使用連結需求。 如需詳細資訊,請參閱 Demand 和LinkDemand 的比較

範例

下列範例會產生 CS0688。 若要在不修改基底類別的情況下解決警告,請從覆寫方法中移除安全性屬性。 這不會解決安全性問題。

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