From 3b80e9d25f52d9c02c411d745563152077ee97d8 Mon Sep 17 00:00:00 2001 From: JamesNK Date: Tue, 2 Mar 2010 10:27:54 +0000 Subject: [PATCH] -Fix dynamic code generation IL verification issues in .NET 4 --- Src/Newtonsoft.Json/Utilities/LateBoundDelegateFactory.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Src/Newtonsoft.Json/Utilities/LateBoundDelegateFactory.cs b/Src/Newtonsoft.Json/Utilities/LateBoundDelegateFactory.cs index d3d1dc12..e4601148 100644 --- a/Src/Newtonsoft.Json/Utilities/LateBoundDelegateFactory.cs +++ b/Src/Newtonsoft.Json/Utilities/LateBoundDelegateFactory.cs @@ -183,18 +183,24 @@ namespace Newtonsoft.Json.Utilities generator.Emit(OpCodes.Ldarg_0); if (type.IsValueType) generator.Emit(OpCodes.Unbox, type); + else + generator.Emit(OpCodes.Castclass, type); } static void BoxIfNeeded(this ILGenerator generator, Type type) { if (type.IsValueType) generator.Emit(OpCodes.Box, type); + else + generator.Emit(OpCodes.Castclass, type); } static void UnboxIfNeeded(this ILGenerator generator, Type type) { if (type.IsValueType) generator.Emit(OpCodes.Unbox_Any, type); + else + generator.Emit(OpCodes.Castclass, type); } public static Func CreateGet(FieldInfo fieldInfo)