/// <summary> /// Json字符串转为Proxy对象 /// </summary> /// <param name="jsonString"></param> /// <param name="useDataContractTransData"></param> /// <param name="type"></param> /// <returns></returns> internal static object ProxyObjectFromJsonString(string jsonString, Type type, bool useDataContractTransData = true) { if (string.IsNullOrEmpty(jsonString)) { return(null); } IContractResolver resolver = new ProxyBaseContractResolver(useDataContractTransData); JsonSerializerSettings settings = GetJsonSerializerSettings(resolver); return(JsonConvert.DeserializeObject(jsonString, type, settings) as ProxyBase); }
/// <summary> /// Proxy对象执行结果转为Json字符串 /// </summary> /// <param name="obj"></param> /// <param name="useDataContractTransData"></param> /// <param name="maxExpandDepth"></param> /// <returns></returns> internal static string ProxyResultToJsonString(object obj, bool useDataContractTransData = true, int maxExpandDepth = DefaultInMaxWritingDepth) { if (obj == null) { return(string.Empty); } IContractResolver resolver = new ProxyBaseContractResolver(useDataContractTransData); JsonSerializerSettings settings = GetJsonSerializerSettings(resolver); settings.MaxWritingDepth = maxExpandDepth > 0 ? maxExpandDepth : DefaultInMaxWritingDepth; settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; return(JsonConvert.SerializeObject(obj, Formatting.None, settings)); }