Skip to content

Commit b6f7bfb

Browse files
committed
Merge pull request #1461 from johanste/clu
Support aliases for ValueFromPipelineByPropertyName parameters.
2 parents a4bfb81 + 1902b9f commit b6f7bfb

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

src/CLU/Microsoft.CLU/CommandBinder/Pipeline/PipelineParametersBinder.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,23 @@ private bool BindParametersToDocumentDataByProperty(object instance, IEnumerable
237237
foreach (var parameter in parameters)
238238
{
239239
JToken jtoken;
240-
if (json.TryGetValue(parameter.Name, StringComparison.OrdinalIgnoreCase, out jtoken))
240+
241+
// First look up by name. If we didn't find a match on name, we'll go through all
242+
// aliases to try to find a match.
243+
var foundMatch = json.TryGetValue(parameter.Name, StringComparison.OrdinalIgnoreCase, out jtoken);
244+
if (!foundMatch)
245+
{
246+
foreach (var alias in parameter.Aliases)
247+
{
248+
if (json.TryGetValue(alias, StringComparison.OrdinalIgnoreCase, out jtoken))
249+
{
250+
foundMatch = true;
251+
break;
252+
}
253+
}
254+
}
255+
256+
if (foundMatch)
241257
{
242258
parameterSets.IntersectWith(parameter.ParameterSets.Keys.ToSet());
243259
if (parameter.ParameterType.Equals(typeof(string)) || parameter.ParameterType.GetTypeInfo().IsEnum)

0 commit comments

Comments
 (0)