protected void WriteMethod(MethodBase[] methods)
{
ParameterInfo[] parameters = (from method in methods
from param in method.GetParameters()
select param).DistinctBy(p => p.Name).ToArray();
if (methods.Length == 1)
{
WriteMethod(methods[0], parameters);
}
else
{
MethodBase[] sortedMethods = (from method in methods
orderby string.Join(" ", from parameter in method.GetParameters()
select parameter.Name)
select method).ToArray();
WriteMethod(sortedMethods, parameters);
}
}