/// <summary>
/// Through reflection, lists the query string parameters, verifies they are conform to constraint attributes, and returns the deserialized version of them.
/// </summary>
/// <returns>The query string parameters provided by the user, or the empty string.</returns>
private string GetQueryStringParameters()
{
IQuery copy = Query.ShallowCopy(); // avoid changes in the original parameter list.
IQuery query = copy.WithDefault(Client.Default);
return(query.ToQueryParams().Deserialize());
}