public T GetAs <T> () { if (typeof(T) == typeof(object) || typeof(T) == Type) { return((T)Value); } else { return((T)ReflectionUtil.Cast(typeof(T), Value)); } }
public object GetAs(System.Type type) { if (type == typeof(object) || type == Type) { return(Value); } else { return(ReflectionUtil.Cast(type, Value)); } }
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); }