//=========================================================================================== private void WriteParameterTypes(IndentedTextWriter writer, MethodBase method, ParameterMode mode) { ParameterInfo[] parameters = method.GetParameters(); if (parameters.Length == 0) return; if (mode.HasFlag(ParameterMode.AddColon)) writer.Write(", "); writer.Write("new Type[] {"); for (int i = 0; i < parameters.Length; i++) { if (i > 0) writer.Write(", "); Type type = GetIEnumerable(parameters[i]); if (type != null) { writer.Write("Types.IEnumerable"); WriteType(writer, type); } else { WriteTypeOf(writer, parameters[i].ParameterType); } } writer.Write("}"); }
//=========================================================================================== private void WriteParameters(IndentedTextWriter writer, ParameterMode mode, params ParameterInfo[] parameters) { for (int i = 0; i < parameters.Length; i++) { if (i > 0 || mode.HasFlag(ParameterMode.AddColon)) writer.Write(", "); if (mode.HasFlag(ParameterMode.Type)) { if (parameters[i].GetCustomAttribute<ParamArrayAttribute>() != null) writer.Write("params "); WriteType(writer, parameters[i].ParameterType); writer.Write(" "); } if (mode.HasFlag(ParameterMode.Instance) && (_Types.Contains(parameters[i].ParameterType) || parameters[i].ParameterType == typeof(object))) { WriteType(writer, parameters[i]); writer.Write(".GetInstance("); writer.Write(parameters[i].Name); writer.Write(")"); } else { if (mode.HasFlag(ParameterMode.Instance)) { if (WriteIEnumerableParameter(writer, parameters[i])) continue; } if (!mode.HasFlag(ParameterMode.Type) && mode.HasFlag(ParameterMode.Name) && IsArray(parameters[i].ParameterType)) writer.Write("casted_"); writer.Write(parameters[i].Name); } } }