Closed
Description
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));