Giúp tôi với mọi người - tại sao mã này lại gây ra một lỗi xác minh khi chạy dưới .NET 4.0?Tại sao dòng này gây ra một ExceptionException khi chạy dưới .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;
}
Tôi chạy peverify
trên lắp ráp .net 2.0 và đã được thông báo sau:
ImageResizer.Util.Utils :: parseEnum [T]] [bù đắp 0x0000000A] Các 'này' tham số để cuộc gọi phải là tham số 'this' của phương thức gọi.
Điều này gây ra thông báo VerificationException: Operation could destabilize the runtime
khi chạy mã dưới sự tin tưởng trung bình.
Tôi đã đọc tất cả các bài đăng trông giống nhau trên ngăn xếp ngăn xếp và không ai trong số chúng áp dụng cho mã này.
Có điều gì mới mẻ với generics có thể khiến mã này không hợp lệ không?
Tôi vừa chạy mã này và không nhận được ngoại lệ như vậy. Bạn có chắc đây là nơi có lỗi không? Đây có phải là được sử dụng trong asp? –
Bạn có đang tạo assembly .NET bằng Visual Studio hay trình biên dịch khác (như Mono) không? – Jacob
Thông báo lỗi cho tôi biết rằng nó đang ở trang cuộc gọi (tức là nơi bạn đang gọi phương thức) đang gặp sự cố này. Bạn có thể cho chúng tôi thấy mã đó không? –