我尝试使用.NET 4.0 RC编译一个依赖于Log4Net日志框架的项目,但遇到了一些问题。
只是将目标更改为.NET 4.0(不做其它操作),它就不能正常工作,会抛出安全异常。
在重写成员时违反了继承安全规则: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'。 重写方法的安全访问性必须与被重写方法的安全访问性相匹配
通过在log4net程序集(在AssemblyInfo.cs中)中添加以下行解决了这个问题:
[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]
有人能解释一下为什么需要这样做,还有其他的替代方法吗?这是否与Log4Net的编写方式有关或者是其他原因?