編譯器警告 (層級 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()
{
}
}