Log4Net和.NET 4.0 RC
问题描述:
我试图编译一个依赖于使用.NET 4.0 RC的Log4Net日志框架的项目,并遇到一些问题。Log4Net和.NET 4.0 RC
开箱即用(只是将目标更改为.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如何写入或者其他什么有关?
答
这是必需的,因为.NET 4.0添加了Level 2 Security-Transparent Code(这是新的默认值),并取消了Code Access Security。 Level 1 Security-Transparent Code仍然存在兼容性,但是,如您所见,必须指定。
你说得对,它与Log4Net的写法有关。 除了更新Log4Net代码 - 或切换到其他日志记录解决方案之外,确实没有其他解决方案可供选择:)