Advertencia del compilador (nivel 1) CS0688

Actualización: noviembre 2007

Mensaje de error

'método1' tiene una petición de vínculo, pero reemplaza o implementa 'método2', que no tiene dicha petición. Puede existir una carencia de seguridad.
'method1' has a link demand, but overrides or implements 'method2' which does not have a link demand. A security hole may exist.

La petición de vínculo establecida en el método de clase derivada se puede evitar con facilidad llamando al método de clase base. Para eliminar la carencia de seguridad, es preciso utilizar la petición de vínculo también en el método de clase base. Para obtener más información, vea Demand frente a LinkDemand.

Ejemplo

El código siguiente genera la advertencia CS0688. Para resolver la advertencia sin modificar la clase base, elimine el atributo de seguridad del método que reemplaza. Tenga en cuenta que de este modo no resolverá el problema de seguridad.

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