error in name formation during in method XmlDocReader.TryGetMethodDescription
In class XmlDocReader, method TryGetMethodDescription(MethodInfo info, out CommandHelpMetadata commandHelpMetadata) has an error. If there are no parameters in the input parameter "info", then the variable "name" is formed incorrectly(with round empty bracket), and we try to get take "member" from "_members" using incorrect name. now:
var sb = new StringBuilder();
sb.Append("M:");
AppendTypeName(sb, info.DeclaringType);
sb.Append(".")
.Append(info.Name)
.Append("(");
bool first = true;
foreach (ParameterInfo param in info.GetParameters())
{
if (first)
{
first = false;
}
else
{
sb.Append(",");
}
AppendTypeName(sb, param.ParameterType);
}
sb.Append(")");
string name = sb.ToString();
XElement member = _members.Elements("member")
.FirstOrDefault(m => string.Equals(m.Attribute("name")?.Value, name));
i suggest doing this:
var sb = new StringBuilder();
sb.Append("M:");
AppendTypeName(sb, info.DeclaringType);
sb.Append(".")
.Append(info.Name);
var parameters = info.GetParameters();
if (parameters.Length > 0)
{
sb.Append("(");
bool first = true;
foreach (ParameterInfo param in info.GetParameters())
{
if (first)
{
first = false;
}
else
{
sb.Append(",");
}
AppendTypeName(sb, param.ParameterType);
}
sb.Append(")");
}
string name = sb.ToString();
XElement member = _members.Elements("member")
.FirstOrDefault(m => string.Equals(m.Attribute("name")?.Value, name));
Would you consider submitting a PR?
Would you consider submitting a PR?
ok, https://github.com/dotnet/command-line-api/pull/1789
For the record, https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/documentation-comments#d42-id-string-format describes the syntax.