Непассивное изменение в RestSharp 106.6.2
.net Core. Используя RestSharp 106.5.4, это было допустимо. Конечная точка Приоритеты поддерживает List<string> priorities
в качестве параметра запроса.
string server = "http://localhost:11111";
var client = new RestClient(server);
string filter = "?priority=Low&priority=Medium"
var request = new RestRequest($"priorities{filter}", Method.GET);
var response = client.Execute<Priorities>(request);
Когда я просматриваю объекты ответа, свойство ResponseUri имеет http://localhost:11111/prioritiespriority? Priority=Low&priority=Medium
Точно так, как я и ожидал. Я обновил свой проект для использования RestSharp 106.6.2, и URI запроса полностью изменился, и сломал существующий код.
С RestSharp 106.6.2 это меняет мой URI, и я получаю этот ResponseUri обратно
http://localhost:11111/priorities?Приоритет = низкий, средний
Это означает, что теперь я получаю только один элемент в моем массиве строк в запросе, разделенных запятой, вместо 2 элементов, как это было раньше.
Почему было сделано это непассивное изменение? Это сломало наших клиентов, потому что теперь он видит только один элемент, переданный в список приоритетов, а именно "Низкий, Средний", вместо двух элементов в массиве, как и должно быть. Это изменяет то, что было передано в вызов, и делает вызов недействительным как низкий, средний - это не значение, низкий - это значение, а средний - это значение.
Это дефект в новой версии Restsharps, или это было сделано специально?
Я знаю, что могу повернуть и использовать объекты параметров, чтобы сделать это, но до самой новой версии restsharp у меня не было и она работала отлично.