diff --git a/MarkdownGenerator.cs b/MarkdownGenerator.cs index f3e2fee..4e8ae0b 100644 --- a/MarkdownGenerator.cs +++ b/MarkdownGenerator.cs @@ -141,7 +141,15 @@ void BuildTable(MarkdownBuilder mb, string label, T[] array, IEnumerable { - var summary = docs.FirstOrDefault(x => x.MemberName == name(item2) || x.MemberName.StartsWith(name(item2) + "`"))?.Summary ?? ""; + var candidates = docs.Where(x => x.MemberName == name(item2) || x.MemberName.StartsWith(name(item2) + "`")).ToArray(); + if (candidates.Count() >= 2 && item2 is MethodBase) + { + // Attempt to identify method overloads + var methodParameterNames = (item2 as MethodBase).GetParameters().Select(p => p.Name); + var overloadCandidates = candidates.Where(x => x.Parameters.Keys.SequenceEqual(methodParameterNames)).ToArray(); + if (overloadCandidates.Any()) { candidates = overloadCandidates; } + } + var summary = candidates.FirstOrDefault()?.Summary ?? ""; return new[] { MarkdownBuilder.MarkdownCodeQuote(type(item2)), finalName(item2), summary }; });