私のお手伝いをしてください - なぜこのコードは.NET 4.0で動作するとVerificationExceptionを引き起こしますか?.NET 4で実行している場合、なぜこの行がVerificationExceptionを引き起こしますか?
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;
}
私は、.NET 2.0のアセンブリにpeverify
を実行し、次のメッセージだ:
ImageResizer.Util.Utilsを:: parseEnumに[T]] [] 0x0000000Aがオフセット 'この' パラメータ呼び出しは呼び出し側メソッドの 'this'パラメータでなければなりません。
これにより、中信頼のコードを実行すると、VerificationException: Operation could destabilize the runtime
というメッセージが表示されます。
私はすでに類似した投稿をすべてスタックオーバーフローで読みましたが、このコードには該当しません。
このコードが何らかの形で無効になるようなジェネリックの新機能がありますか?
このコードを実行しただけで、そのような例外は発生しませんでした。エラーがどこにあるのは確かですか?これはASPで使用されていますか? –
Visual Studioや他のコンパイラ(Monoなど)を使用して.NETアセンブリを生成していますか? – Jacob
このエラーメッセージは、この問題が発生しているコールサイト(つまり、メソッドを呼び出している場所)にあることを示しています。そのコードも表示できますか? –