Прочитать на английском

Поделиться через


Предупреждение компилятора (уровень 1) CS0688

Метод "метод1" содержит запрос компоновки, но переопределяет или реализует метод "метод2", который не имеет запрос компоновки. Может возникнуть нарушение защиты.

Запрос компоновки, установленный в методе производного класса, можно легко обойти, вызвав метод базового класса. Чтобы закрыть эту брешь в системе безопасности, метод базового класса также должен использовать запрос компоновки. Дополнительные сведения см. в разделе 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()  
    {  
    }  
}