我有一个继承自 Exception 的类。在 .NET 4 中,我开始收到运行时错误:
违反继承安全规则
同时重写成员:MyBusinessException.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'。安全
重写方法的可访问性
必须符合安全可访问性
被覆盖的方法。
我认为这个问题是由我重写 GetObjectData 引起的。
我知道解决该问题的一个答案是设置 SecurityRuleSet:
[assembly: SecurityRules(SecurityRuleSet.Level1)]
这不是一个可接受的答案,我想知道如何解决该问题,而不必放宽 .NET 4 中的默认安全规则。
Mark GetObjectData
with SecurityCriticalAttribute
,因为它应用于Exception.GetObjectData
。被覆盖的成员应具有相同的安全可访问性(关键、安全、关键或透明)。
Read .NET Framework 4 中的安全更改 and 安全透明代码,2 级从 MSDN 获取更多信息。
要避免所有潜在的安全运行时异常,请使用安全规则集启用代码分析。您将收到可能与运行时错误相对应的静态分析警告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)