/// <summary> /// Return the string representation of a method call and its arguments. /// </summary> /// <param name="method">The method</param> /// <param name="args">The method arguments</param> /// <param name="invocation">Invocation of the method, used to get the generics arguments</param> /// <param name="format">Delegate to format the parameter</param> /// <returns>The string representation of this method call</returns> public static string StringPresentation(IInvocation invocation, FormatArgumnet format, MethodInfo method, object[] args) { Validate.IsNotNull(format, "format"); Validate.IsNotNull(method, "method"); Validate.IsNotNull(args, "args"); StringBuilder sb = new StringBuilder(); sb.Append(method.DeclaringType.Name).Append(".").Append(method.Name); if (invocation != null) { if (method.IsGenericMethod) { sb.Append("<"); foreach (Type genericArgument in invocation.GenericArguments) { sb.Append(genericArgument); sb.Append(", "); } sb.Remove(sb.Length - 2, 2); //remove last ", " sb.Append(">"); } } sb.Append("("); int numberOfParameters = method.GetParameters().Length; for (int i = 0; i < numberOfParameters; i++) { sb.Append(format(args, i)); if (i < numberOfParameters - 1) sb.Append(", "); } sb.Append(");"); return sb.ToString(); }
/// <summary> /// Return the string representation of a method call and its arguments. /// </summary> /// <param name="method">The method</param> /// <param name="args">The method arguments</param> /// <param name="invocation">Invocation of the method, used to get the generics arguments</param> /// <param name="format">Delegate to format the parameter</param> /// <returns>The string representation of this method call</returns> public static string StringPresentation(IInvocation invocation, FormatArgumnet format, MethodInfo method, object[] args) { Validate.IsNotNull(format, "format"); Validate.IsNotNull(method, "method"); Validate.IsNotNull(args, "args"); StringBuilder sb = new StringBuilder(); sb.Append(method.DeclaringType.Name).Append(".").Append(method.Name); if (invocation != null) { if (method.IsGenericMethod) { sb.Append("<"); foreach (Type genericArgument in invocation.GenericArguments) { sb.Append(genericArgument); sb.Append(", "); } sb.Remove(sb.Length - 2, 2); //remove last ", " sb.Append(">"); } } sb.Append("("); int numberOfParameters = method.GetParameters().Length; for (int i = 0; i < numberOfParameters; i++) { sb.Append(format(args, i)); if (i < numberOfParameters - 1) { sb.Append(", "); } } sb.Append(");"); return(sb.ToString()); }