Используя модель веб-программирования WCF, можно указать операционный контракт следующим образом:
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = "SomeRequest?qs1={qs1}&qs2={qs2}")]
XElement SomeRequest1(string qs1, string qs2);
Теперь, если бы нам пришлось заключить контракт, который принимает массив параметров с тем же именем (в данном случае qs1), как это...
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = "SomeRequest?qs1={qs1}&qs1={qs2}")]
XElement SomeRequest2(string qs1, string qs2);
Мы получаем сообщение об ошибке во время выполнения, когда вызываем метод:
строка запроса должна иметь пары "имя = значение" с уникальными именами. Обратите внимание, что имена не зависят от регистра. Подробнее см. Документацию для UriTemplate.
Как определить HTTP-сервис, который предоставляет ресурс с массивом параметров, не прибегая к бессвязному интерфейсу?