Помогите мне, народ - почему этот код вызывает исключение 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: операция может дестабилизировать сообщение среды выполнения
при запуске кода со средним уровнем доверия.
Я уже читал все похожие сообщения при переполнении стека, и ни один из них не применим к этому коду.
Есть ли что-то новое в дженериках, из-за чего этот код станет некорректным?