我一直在努力理解代码访问安全性,我希望有人能够向我解释这种行为以及为什么它需要添加权限。假设我有两种扩展方法
public static string dib(this string source)
{
return souce.dob();
}
public static string dob(this string source)
{
return source+"dob":
}
如果这两个方法出现在同一个类中,它们不需要特殊的 CAS 权限。但是,一旦我将 dob 移到另一个类中,我就需要带有 ControlEvidence 标志的 System.Security.Permissions.SecurityPermission。从类之间的扩展方法中调用扩展方法是否有一些限制?除了将所有扩展合并到一个巨大的单个类中之外,还有其他解决方法吗?
'''编辑:''' 事实证明,实际问题与扩展方法无关。有一个构造函数在其中一个类中使用了 RegEx。正则表达式以及在运行时编译的其他函数需要 ControlEvidence。感谢您的帮助,这个 CAS 的东西非常棘手。