public Uri BindByPosition (Uri baseAddress, params string [] values)
{
CheckBaseAddress (baseAddress);
if (values.Length != path.Count + query.Count)
throw new FormatException (String.Format ("Template '{0}' contains {1} parameters but the argument values to bind are {2}", template, path.Count + query.Count, values.Length));
int src = 0, index = 0;
StringBuilder sb = new StringBuilder (template.Length);
BindByPosition (ref src, sb, path, values, ref index);
BindByPosition (ref src, sb, query, values, ref index);
sb.Append (template.Substring (src));
return new Uri (baseAddress.ToString () + TrimRenderedUri (sb));
}