我一直在努力理解代码访问安全性,并希望有人能够向我解释此行为以及为什么它需要添加权限。假设我有两种扩展方法跨类调用扩展方法需要ControlEvidence权限
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内容非常棘手。