Show default values in CompositeEndpointDataSource's debugger display string

This commit is contained in:
Kiran Challa 2018-07-31 12:38:58 -07:00
parent 865d19652c
commit f62877b9db
1 changed files with 18 additions and 2 deletions

View File

@ -127,9 +127,11 @@ namespace Microsoft.AspNetCore.Routing
var template = matcherEndpoint.RoutePattern.RawText;
template = string.IsNullOrEmpty(template) ? "\"\"" : template;
sb.Append(template);
var requiredValues = matcherEndpoint.RequiredValues.Select(kvp => $"{kvp.Key} = \"{kvp.Value ?? "null"}\"");
sb.Append(", Required Values: new { ");
sb.Append(string.Join(", ", requiredValues));
sb.Append(string.Join(", ", GetValues(matcherEndpoint.RequiredValues)));
sb.Append(" }");
sb.Append(", Defaults: new { ");
sb.Append(string.Join(", ", GetValues(matcherEndpoint.RoutePattern.Defaults)));
sb.Append(" }");
sb.Append(", Order:");
sb.Append(matcherEndpoint.Order);
@ -150,6 +152,20 @@ namespace Microsoft.AspNetCore.Routing
}
}
return sb.ToString();
IEnumerable<string> GetValues(IEnumerable<KeyValuePair<string, object>> values)
{
return values.Select(
kvp =>
{
var value = "null";
if (kvp.Value != null)
{
value = "\"" + kvp.Value.ToString() + "\"";
}
return kvp.Key + " = " + value;
});
}
}
}
}