Thank you for this excellent approach to handling the query string. I found that it does not correctly handle a query string with multiple parameters that have comma-separated values.
GET /products?sizes=s,m,l&colors=blue,green
[HttpGet("Products")] public IActionResult Get( [CommaSeparated]IEnumerable<string> sizes, [CommaSeparated]IEnumerable<string> colors, string filterText)
Presumably the fix involves having the various classes (the factory and provider) maintain an enumeration of keys. Thanks!