private static void FormatSignature(StringBuilder result, MethodBase method) { ContractUtils.RequiresNotNull(result, "result"); ContractUtils.RequiresNotNull(method, "method"); MethodInfo methodInfo = method as MethodInfo; if (methodInfo != null) { FormatTypeName(result, methodInfo.ReturnType); result.Append(' '); } MethodBuilder builder = method as MethodBuilder; if (builder != null) { result.Append(builder.Signature); return; } ConstructorBuilder cb = method as ConstructorBuilder; if (cb != null) { result.Append(cb.Signature); return; } FormatTypeName(result, method.DeclaringType); result.Append("::"); result.Append(method.Name); if (!method.IsConstructor) { FormatTypeArgs(result, method.GetGenericArguments()); } result.Append("("); if (!method.ContainsGenericParameters) { ParameterInfo[] ps = method.GetParameters(); for (int i = 0; i < ps.Length; i++) { if (i > 0) { result.Append(", "); } FormatTypeName(result, ps[i].ParameterType); if (!System.String.IsNullOrEmpty(ps[i].Name)) { result.Append(" "); result.Append(ps[i].Name); } } } else { result.Append("?"); } result.Append(")"); }