Я работал над пониманием безопасности доступа к коду и надеялся, что кто-нибудь сможет объяснить мне это поведение и почему оно требует дополнительных разрешений. Скажем, у меня есть два метода расширения
public static string dib(this string source)
{
return souce.dob();
}
public static string dob(this string source)
{
return source+"dob":
}
Если эти два метода появляются в одном классе, они не требуют специальных разрешений CAS. Однако, как только я перемещаю dob в другой класс, мне требуется System.Security.Permissions.SecurityPermission с флагом ControlEvidence. Есть ли какое-то ограничение на вызов методов расширения из методов расширения между классами? Есть ли обходной путь, кроме объединения всех расширений в один огромный класс?
'''Редактировать:''' Как оказалось, реальная проблема не была связана с методом расширения. Был конструктор, который использовал RegEx в одном из классов. Регулярные выражения, наряду с другими функциями, компилируемыми во время выполнения, требуют ControlEvidence. Спасибо за вашу помощь, эта штука с CAS очень сложная.