public static GetterDelegate CreateGetterDelegate(Type type, FieldInfo fieldInfo)
{
#if !CompactFramework
DynamicMethod dynamicGet = CreateDynamicGetMethod(type);
ILGenerator getGenerator = dynamicGet.GetILGenerator();
getGenerator.Emit(OpCodes.Ldarg_0);
getGenerator.Emit(OpCodes.Ldfld, fieldInfo);
BoxIfNeeded(fieldInfo.FieldType, getGenerator);
getGenerator.Emit(OpCodes.Ret);
return (GetterDelegate)dynamicGet.CreateDelegate(typeof(GetterDelegate));
#else
return (obj) => fieldInfo.GetValue(obj);
#endif
}