.net - ejemplo - log4net download
Log4Net y.NET 4.0 RC (2)
Este error se conoce como https://issues.apache.org/jira/browse/LOG4NET-347 y parece que se ha corregido.
Intenté compilar un proyecto dependiente del marco de registro de Log4Net utilizando .NET 4.0 RC y tuve algunos problemas.
Fuera de la caja (solo cambiando el destino a .NET 4.0), ya no funciona, se lanza una excepción de seguridad.
Se violaron las reglas de seguridad de herencia al reemplazar el miembro: ''log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData (System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)''. La accesibilidad de seguridad del método de reemplazo debe coincidir con la accesibilidad de seguridad del método que se está
Esto se resolvió agregando la siguiente línea al ensamblaje log4net (en AssemblyInfo.cs):
[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]
¿Puede alguien explicar por qué se requiere esto y hay alternativas para hacerlo de esta manera? ¿Está esto relacionado con cómo se escribe Log4Net o algo más?
Esto es necesario porque .NET 4.0 agregó el Código de seguridad transparente de nivel 2 (que es el nuevo valor predeterminado) y eliminó la Seguridad de acceso al código . El Código de seguridad transparente de nivel 1 aún está allí por compatibilidad, pero, como lo ha descubierto, debe especificarse.
Tienes razón en que está relacionado con cómo se escribe Log4Net. Realmente no hay otra alternativa a la solución que encontraste para actualizar el código Log4Net, o cambiar a una solución de registro diferente :)