Ayúdenme amigos: ¿por qué este código causa una VerificationException cuando se ejecuta en .NET 4.0?¿Por qué esta línea causa una VerificationException cuando se ejecuta en .NET 4?
public T parseEnum<T>(string value, T defaultValue) {
//Removing the following lines fixes the problem
if (!typeof(T).IsEnum) throw new ArgumentException("T must be an enumerated type");
return defaultValue;
}
me corrieron peverify
en el ensamblado de .NET 2.0 y tiene el siguiente mensaje:
ImageResizer.Util.Utils :: parseEnum [T]] [Separar 0X0000000A] El 'esto' parámetro a la llamada debe ser el parámetro 'este' del método de llamada.
Esto provoca un mensaje VerificationException: Operation could destabilize the runtime
al ejecutar el código bajo confianza media.
Ya he leído todas las publicaciones similares en el desbordamiento de pila, y ninguna de ellas se aplica a este código.
¿Hay algo nuevo en los genéricos que haga que este código no sea válido?
Acabo de ejecutar este código y no recibí ninguna excepción. ¿Estás seguro de que aquí es donde yace el error? ¿Esto se está usando en asp? –
¿Está generando el ensamblado de .NET usando Visual Studio u otro compilador (como Mono)? – Jacob
El mensaje de error me indica que está en el sitio de la llamada (es decir, donde está llamando al método) que está teniendo este problema. ¿Puedes mostrarnos ese código también? –