Compilerwarnung (Stufe 1) CS0688
Aktualisiert: November 2007
Fehlermeldung
"Methode1" hat einen Verknüpfungsaufruf, überschreibt bzw. implementiert aber "Methode2", die keinen Verknüpfungsaufruf enthält. Möglicherweise besteht eine Sicherheitslücke.
'method1' has a link demand, but overrides or implements 'method2' which does not have a link demand. A security hole may exist.
Der auf der abgeleiteten Klasse festgelegte Verknüpfungsaufruf kann leicht durch den Aufruf einer Basisklassenmethode umgangen werden. Um diese Sicherheitslücke zu schließen, müssen die Klassenmethoden ebenfalls den Verknüpfungsaufruf verwenden. Weitere Informationen finden Sie unter Anforderung und Verknüpfungsanforderung.
Beispiel
Im folgenden Beispiel wird CS0688 generiert: Um die Warnung zu beheben, ohne die Basisklasse verändern zu müssen, entfernen Sie das Sicherheitsattribut aus der überschreibenden Methode. Dadurch wird das Sicherheitsproblem nicht gelöst.
// 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()
{
}
}