/// <summary> /// 构造参数列表。 /// </summary> /// <param name="methodInfo">方法,为null时直接返回new object[0]</param> /// <param name="converValue">转换数据委托,默认为TypeExtensions.Convert。</param> /// <param name="datas">可用数据源。</param> /// <returns>返回参数列表。</returns> public static object[] BuildParameters(System.Reflection.MethodInfo methodInfo, TypeExtensions.ConvertValue converValue, params object[] datas) { if (methodInfo == null) { return(new object[0]); } return(BuildParameters(methodInfo.GetParameters(), converValue, datas)); }
/// <summary> /// 构造参数列表。 /// </summary> /// <param name="type">方法,为null时直接返回new object[0]</param> /// <param name="converValue">转换数据委托,默认为TypeExtensions.Convert。</param> /// <param name="datas">可用数据源。</param> /// <returns>返回参数列表。</returns> public static object[] BuildParameters(System.Type type, TypeExtensions.ConvertValue converValue, params object[] datas) { if (type == null) { return(new object[0]); } return(BuildParameters(GetProperties(type, BindingFlags.Public | BindingFlags.Instance, true, true), converValue, datas)); }
/// <summary> /// 释放占用的资源。 /// </summary> public void Dispose() { _datas = null; _bodyData = null; _convertValue = null; _paramters = null; _otherParamters = null; _tryGetValues = null; }
/// <summary> /// 创建实ParameterInfoBinder例。 /// </summary> /// <param name="paramters">参数列表。</param> /// <param name="convertValue">值转换器。</param> /// <param name="datas">数据列表。</param> public ParameterInfoBinder(System.Collections.Generic.IList <IParameterInfo> paramters, TypeExtensions.ConvertValue convertValue, object[] datas) { _paramters = paramters; _convertValue = convertValue ?? ConvertValue_Default; Datas = datas; }
/// <summary> /// 创建实ParameterInfoBinder例。 /// </summary> public ParameterInfoBinder() { _convertValue = ConvertValue_Default; }
/// <summary> /// 构造参数对象。 /// </summary> /// <param name="paramters">参数定义列表。</param> /// <param name="converValue">转换数据委托,默认为TypeExtensions.Convert。</param> /// <param name="datas">可用数据源。</param> /// <returns>返回参数对象。</returns> public static Symbol.Collections.Generic.NameValueCollection <object> BuildParameterObject(System.Collections.Generic.IList <IParameterInfo> paramters, TypeExtensions.ConvertValue converValue, params object[] datas) { using (var binder = new ParameterInfoBinder(paramters, converValue, datas)) { return(binder.ToObject()); } }
/// <summary> /// 构造参数列表。 /// </summary> /// <param name="methodInfo">方法,为null时直接返回null。</param> /// <param name="converValue">转换数据委托,默认为TypeExtensions.Convert。</param> /// <param name="datas">可用数据源。</param> /// <returns>返回参数列表。</returns> public static Symbol.Collections.Generic.NameValueCollection <object> BuildParameterObject(System.Reflection.MethodInfo methodInfo, TypeExtensions.ConvertValue converValue, params object[] datas) { if (methodInfo == null) { return(null); } return(BuildParameterObject(methodInfo.GetParameters(), converValue, datas)); }
/// <summary> /// 构造参数列表。 /// </summary> /// <param name="paramters">参数定义列表。</param> /// <param name="converValue">转换数据委托,默认为TypeExtensions.Convert。</param> /// <param name="datas">可用数据源。</param> /// <returns>返回参数列表。</returns> public static Symbol.Collections.Generic.NameValueCollection <object> BuildParameterObject(System.Reflection.PropertyInfo[] paramters, TypeExtensions.ConvertValue converValue, params object[] datas) { using (var binder = new ParameterInfoBinder(PropertyParameterInfo.As(paramters), converValue, datas)) { return(binder.ToObject()); } }
/// <summary> /// 构造参数列表。 /// </summary> /// <param name="type">方法,为null时直接返回null。</param> /// <param name="converValue">转换数据委托,默认为TypeExtensions.Convert。</param> /// <param name="datas">可用数据源。</param> /// <returns>返回参数列表。</returns> public static Symbol.Collections.Generic.NameValueCollection <object> BuildParameterObject(System.Type type, TypeExtensions.ConvertValue converValue, params object[] datas) { if (type == null) { return(null); } return(BuildParameterObject(GetProperties(type, BindingFlags.Public | BindingFlags.Instance, true, true), converValue, datas)); }
/// <summary> /// 构造参数列表。 /// </summary> /// <param name="paramters">参数定义列表。</param> /// <param name="converValue">转换数据委托,默认为TypeExtensions.Convert。</param> /// <param name="datas">可用数据源。</param> /// <returns>返回参数列表。</returns> public static object[] BuildParameters(System.Collections.Generic.IList <IParameterInfo> paramters, TypeExtensions.ConvertValue converValue, params object[] datas) { using (var binder = new ParameterInfoBinder(paramters, converValue, datas)) { return(binder.ToArray()); } }
/// <summary> /// 构造参数列表。 /// </summary> /// <param name="paramters">参数定义列表。</param> /// <param name="converValue">转换数据委托,默认为TypeExtensions.Convert。</param> /// <param name="datas">可用数据源。</param> /// <returns>返回参数列表。</returns> public static object[] BuildParameters(IParameterInfo[] paramters, TypeExtensions.ConvertValue converValue, params object[] datas) { using (var binder = new ParameterInfoBinder(paramters, converValue, datas)) { return(binder.ToArray()); } }
/// <summary> /// 构造参数列表。 /// </summary> /// <param name="paramters">参数定义列表。</param> /// <param name="converValue">转换数据委托,默认为TypeExtensions.Convert。</param> /// <param name="datas">可用数据源。</param> /// <returns>返回参数列表。</returns> public static object[] BuildParameters(System.Reflection.ParameterInfo[] paramters, TypeExtensions.ConvertValue converValue, params object[] datas) { using (var binder = new ParameterInfoBinder(MethodParameterInfo.As(paramters), converValue, datas)) { return(binder.ToArray()); } }