- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个继承自 Exception 的类。在 .NET 4 中,我开始收到运行时错误:
Inheritance security rules violated while overriding member: MyBusinessException.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Security accessibility of the overriding method must match the security accessibility of the method being overriden.
我认为问题是由我重写 GetObjectData 引起的。
我知道解决该问题的一个答案是设置 SecurityRuleSet:
[assembly: SecurityRules(SecurityRuleSet.Level1)]
这不是一个可接受的答案,我想知道如何解决该问题,而不必放宽 .NET 4 中的默认安全规则。
最佳答案
使用 SecurityCriticalAttribute
标记 GetObjectData
,因为它应用于 Exception.GetObjectData
。被覆盖的成员应该具有相同的安全可访问性(关键、安全、关键或透明)。
阅读Security Changes in the .NET Framework 4和 Security Transparent Code, Level 2从 MSDN 获取更多信息。
要避免所有潜在的安全运行时异常,请使用安全规则集启用代码分析。您将收到可能与运行时错误相对应的静态分析警告。
关于.net - 重写成员时违反了继承安全规则 - SecurityRuleSet.Level2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055792/
我有一个继承自 Exception 的类。在 .NET 4 中,我开始收到运行时错误: Inheritance security rules violated while overriding mem
我有一个继承自 Exception 的类。在 .NET 4 中,我开始收到运行时错误: Inheritance security rules violated while overriding mem
我是一名优秀的程序员,十分优秀!