/// <summary> /// Create a json representation for an object with parameter override on this call /// </summary> /// <param name="obj"></param> /// <param name="param"></param> /// <returns></returns> public static string ToJSON(object obj, JSONParameters param) { param.FixValues(); param = param.MakeCopy(); Type t = null; if (obj == null) { return("null"); } if (obj.GetType().IsGenericType) { t = Reflection.Instance.GetGenericTypeDefinition(obj.GetType()); } if (t == typeof(Dictionary <,>) || t == typeof(List <>)) { param.UsingGlobalTypes = false; } var useExtensions = param.UseExtensions; var usingGlobalTypes = param.UsingGlobalTypes; // FEATURE : enable extensions when you can deserialize anon types if (Reflection.IsAnonymousType(t ?? obj.GetType())) { param.UseExtensions = false; param.UsingGlobalTypes = false; } var o = new JSONSerializer(param).ConvertToJSON(obj); // reset parameter param.UseExtensions = useExtensions; param.UsingGlobalTypes = usingGlobalTypes; return(o); }
public deserializer(JSONParameters param) { param.FixValues(); _params = param.MakeCopy(); }