编译器警告(等级 1)CS0688
“method1”具有链接要求,但会重写或实现不具有链接要求“method2”。 可能存在安全漏洞。
可通过调用基类方法轻松绕过对派生类方法设置的此链接要求。 要填补此安全漏洞,基类方法需要同样使用此链接要求。 有关详细信息,请参阅 要求与LinkDemand。
以下示例生成 CS0688。 若要解决此警告而不修改基类,请从重写方法中删除安全特性。 这不会解决安全问题。
C#
// 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()
{
}
}