Extend url parameters default formatting by MikeAmputer · Pull Request #1781 · reactiveui/refit

Closes #1775

This PR extends the DefaultUrlParameterFormatter with additional formatting options based on parameter type or a combination of request and parameter types. This allows values with no QueryAttribute format to be custom-formatted without the necessity of fully reimplementing DefaultUrlParameterFormatter.

Example usage:

class CustomUrlParameterFormatter : DefaultUrlParameterFormatter
{
	public CustomUrlParameterFormatter()
	{
		AddFormat<DateTime>("yyyy-MM-ddTHH:mm:ss");
		AddFormat<MyRequest, DateTime>("yyyy-MM-ddTHH:mm:ss.fffZ");
	}
}

or

var urlParameterFormatter = new DefaultUrlParameterFormatter();
urlParameterFormatter.AddFormat<DateTime>("yyyy-MM-ddTHH:mm:ss");
urlParameterFormatter.AddFormat<MyRequest, DateTime>("yyyy-MM-ddTHH:mm:ss.fffZ");

Formatting priority:

  1. QueryAttribute format
  2. AddFormat<TContainer, TParameter> (might be suppressed by a QueryAttribute format)
  3. AddFormat<TParameter> (might be suppressed by a QueryAttribute format or a container specific format)