I haven't tried it, but I suspect the binding is ignoring the
params
modifier on your indexer parameter. It wants a one-to-one mapping from the
PathParameters
to the indexer parameters - ie: a single string, and a single string array.
Try:
string[] parameters = new string[values.Length - 1];
if (parameters.Length != 0) Array.Copy(values, 1, parameters, 0, parameters.Length);
binding.Path = new PropertyPath("[key, parameters]", values[0], parameters);