Example #1
0
        private Dictionary <string, object> RenderDictioary(ServiceReader reader, Dictionary <string, ParameterInfo> parameters)
        {
            Dictionary <string, object> dictionarys = new Dictionary <string, object>();

            foreach (string key in reader.Values.AllKeys)
            {
                if (parameters.ContainsKey(key))
                {
                    var    reqValue       = reader.Values[key];
                    Type   parameterType  = parameters[key].ParameterType;
                    object parameterValue = null;
                    if (string.IsNullOrWhiteSpace(reqValue))
                    {
                        parameterType  = TypeConvertHelper.GetUnderlyingType(parameterType);
                        parameterValue = TypeConvertHelper.ChangeType(parameterType, reqValue);
                        continue;
                    }
                    if (TypeConvertHelper.IsPrimitive(parameterType))
                    {
                        parameterType  = TypeConvertHelper.GetUnderlyingType(parameterType);
                        parameterValue = TypeConvertHelper.ChangeType(parameterType, reqValue);
                        dictionarys.Add(key, parameterValue);
                    }
                    else if (parameterType.IsClass)
                    {
                        parameterValue = JsonConvertHelper.DeserializeObject(reqValue, parameterType);
                        dictionarys.Add(key, parameterValue);
                    }
                }
            }
            return(dictionarys);
        }
Example #2
0
 /// <summary>
 /// Type 是否为基元类型之一
 /// </summary>
 /// <param name="t"></param>
 /// <returns></returns>
 public static bool IsPrimitive(Type t)
 {
     if (t.IsGenericType)
     {
         return(TypeConvertHelper.IsNullableType(t) && TypeConvertHelper.IsPrimitive(Nullable.GetUnderlyingType(t)));
     }
     return(t == typeof(string) || t == typeof(short) || t == typeof(ushort) || t == typeof(int) || t == typeof(uint) || t == typeof(long) || t == typeof(ulong) || t == typeof(float) || t == typeof(double) || t == typeof(decimal) || t == typeof(char) || t == typeof(byte) || t == typeof(bool) || t == typeof(DateTime) || t == typeof(Guid));
 }