示例#1
0
 public T GetAs <T> ()
 {
     if (typeof(T) == typeof(object) || typeof(T) == Type)
     {
         return((T)Value);
     }
     else
     {
         return((T)ReflectionUtil.Cast(typeof(T), Value));
     }
 }
示例#2
0
 public object GetAs(System.Type type)
 {
     if (type == typeof(object) || type == Type)
     {
         return(Value);
     }
     else
     {
         return(ReflectionUtil.Cast(type, Value));
     }
 }
示例#3
0
        object[] CastArgsIfNeeded(ParameterInfo[] parameters, object[] args)
        {
            if (args == null)
            {
                return(null);
            }
            int len = args.Length;

            for (int i = 0; i < len; ++i)
            {
                if (args[i] is NullWithType)
                {
                    args[i] = ReflectionUtil.Cast(parameters[i].ParameterType, null);
                }
                else if (parameters[i].ParameterType != args[i].GetType())
                {
                    args[i] = ReflectionUtil.Cast(parameters[i].ParameterType, args[i]);
                }
            }
            return(args);
        }