Я попытался скомпилировать проект, зависящий от среды ведения журнала 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 или как-то еще?