C#:在.Net 4中使用安全属性重写的方法

6 c# security permissions methods overriding

在.Net 4中,一些方法现在使用不同于以前版本的安全属性(即新的SecurityCriticalAttribute)进行修饰.为了覆盖具有安全权限的方法,派生声明上的相对安全性可访问性必须与基本声明上的相对安全性可访问性(或者运行时异常)相匹配.

传统程序集将不知道这些新属性,并且由于代码已经编译并且元数据已经生成,我们无法从那些覆盖现在具有新属性的方法的程序集中加载任何类型(因为安全可访问性不具备比赛).

.Net4是否与.Net4前装配兼容?如果是这样,有解决方法/解决方案吗?

Dia*_*tis 1

我之前没有偶然发现过这个,但经过一些研究后,似乎使用该NetFx40_LegacySecurityPolicy选项可以得到遗留支持。

<configuration>
  <runtime>
    <NetFx40_LegacySecurityPolicy enabled="true" />
  </runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)