Помогите мне - почему этот код вызывает VerificationException при запуске под .NET 4.0?
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;
}
Я запустил peverify
на сборке .net 2.0 и получил следующее сообщение:
ImageResizer.Util.Utils:: parseEnum [T]] [offset 0x0000000A] Параметр 'this' для вызова должен быть параметром вызывающего метода 'this'.
Это вызывает сообщение VerificationException: Operation could destabilize the runtime
при запуске кода под средним доверием.
Я уже прочитал все похожие сообщения о переполнении стека, и ни один из них не применим к этому коду.
Есть ли что-то новое с дженериками, которые могут привести к тому, что этот код будет каким-то образом недействительным?