/// <summary>
        /// Build parameters.
        /// </summary>
        /// <param name="methodBuilder">The method builder.</param>
        /// <param name="methodParms">An array of <see cref="ControllerMethodParameterAttribute"/> objects.</param>
        private void BuildParameters(
            IMethodBuilder methodBuilder,
            IEnumerable <ControllerMethodParameterAttribute> methodParms)
        {
            foreach (var methodParm in methodParms)
            {
                methodBuilder.Param(
                    parmBuilder =>
                {
                    parmBuilder
                    .Name(methodParm.ParameterName)
                    .Type(methodParm.ParameterType);

                    this.ApplyParameterAttributes(
                        parmBuilder,
                        methodParm);
                });
            }
        }
        /// <summary>
        /// Build parameters.
        /// </summary>
        /// <param name="methodBuilder">The method builder.</param>
        /// <param name="parmInfos">An array of <see cref="ParameterInfo"/> objects.</param>
        private void BuildParameters(
            IMethodBuilder methodBuilder,
            ParameterInfo[] parmInfos)
        {
            for (int i = 0; i < parmInfos.Length; i++)
            {
                methodBuilder.Param(
                    (parmBuilder) =>
                {
                    parmBuilder
                    .Type(parmInfos[i].ParameterType)
                    .Name(parmInfos[i].Name);
                    ////parmInfos[i].Attributes);

                    this.ApplyParameterAttributes(
                        parmInfos[i],
                        parmBuilder);
                });
            }
        }
 /// <summary>
 /// Defines an ref parameter.
 /// </summary>
 /// <param name="methodBuilder">A <see cref="IMethodBuilder"/> instance.</param>
 /// <param name="parameterName">The name of parameter.</param>
 /// <returns>The <see cref="IMethodBuilder"/> instance.</returns>
 public static IMethodBuilder RefParam <TParam>(this IMethodBuilder methodBuilder, string parameterName)
 {
     return(methodBuilder.Param(typeof(TParam).MakeByRefType(), parameterName, ParameterAttributes.None));
 }
 /// <summary>
 /// Defines a parameter.
 /// </summary>
 /// <param name="methodBuilder">A <see cref="IMethodBuilder"/> instance.</param>
 /// <param name="parameterName">The name of parameter.</param>
 /// <param name="attrs">The parameters attribtes</param>
 /// <returns>The <see cref="IMethodBuilder"/> instance.</returns>
 public static IMethodBuilder Param <TParam>(this IMethodBuilder methodBuilder, string parameterName, ParameterAttributes attrs = ParameterAttributes.None)
 {
     return(methodBuilder.Param(typeof(TParam), parameterName, attrs));
 }
 /// <summary>
 /// Defines a parameter.
 /// </summary>
 /// <param name="methodBuilder">A <see cref="IMethodBuilder"/> instance.</param>
 /// <returns>The <see cref="IMethodBuilder"/> instance.</returns>
 public static IMethodBuilder Param <TParam>(this IMethodBuilder methodBuilder)
 {
     return(methodBuilder.Param <TParam>(null));
 }