Example #1
0
        /// <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);
        }
Example #2
0
        /// <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));
        }