/// <summary> /// Gets the code for the header of an extension method. /// </summary> /// <param name="methodName">Name of the method.</param> /// <param name="extender">The extender.</param> /// <param name="parameters">The parameters.</param> /// <param name="returnType">Type of the return.</param> /// <returns>The code.</returns> public virtual string GetExtensionMethodHeader(string methodName, MethodParameter extender, MethodParameter[] parameters, Type returnType) { var sb = new StringBuilder(256); sb.Append(GetMethodNameAndVisibility(methodName, MemberVisibilityLevel.Public, returnType, false, true)); sb.Append(OpenParameterString); // First parameter sb.Append("this "); sb.Append(GetParameter(extender)); // Additional parameters if (parameters != null && parameters.Length > 0) { sb.Append(ParameterSpacer); sb.Append(GetParameters(parameters)); } sb.Append(CloseParameterString); return(sb.ToString()); }
/// <summary> /// Gets the code for creating a parameter. /// </summary> /// <param name="parameter">The parameter.</param> /// <returns>The code.</returns> public virtual string GetParameter(MethodParameter parameter) { return(parameter.Type + " " + parameter.Name); }