From 99aee61e46bad9f0978d22d88ca92c0571cf03ff Mon Sep 17 00:00:00 2001 From: melon Date: Thu, 2 Apr 2015 00:21:26 +0800 Subject: [PATCH] propertyinfo.GetSetMethod.invoke instead of propertyinfo.SetValue --- src/LitJson/JsonMapper.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/LitJson/JsonMapper.cs b/src/LitJson/JsonMapper.cs index 38d68a77..4811872e 100644 --- a/src/LitJson/JsonMapper.cs +++ b/src/LitJson/JsonMapper.cs @@ -438,11 +438,16 @@ private static object ReadValue (Type inst_type, JsonReader reader) PropertyInfo p_info = (PropertyInfo) prop_data.Info; - if (p_info.CanWrite) - p_info.SetValue ( - instance, - ReadValue (prop_data.Type, reader), - null); + if (p_info.CanWrite){ + //p_info.SetValue( + // instance, + // ReadValue(prop_data.Type, reader), + // null); + //use the getSetMethod.invoke instead of SetValue is to suport more platform + // such as mono run in ios,jit is forbidden,so the p_info.setValue cannot be used + p_info.GetSetMethod().Invoke(instance, new object[] { ReadValue(prop_data.Type, reader) }); + } + else ReadValue (prop_data.Type, reader); }