WCF / Rest / UriTemplate список параметров строки запроса переменной длины? - PullRequest
5 голосов
/ 30 сентября 2010

WCF будет соответствовать этому:

http://localhost:8888/test/blahFirst/blahSecond/sdfsdf,wwewe

этому:

[OperationContract]
[WebGet( UriTemplate = "test/{first}/{second}/{val1},{val2}" )]
string GetVal( string first, string second, string val1, string val2 );

Можно ли сделать va11, val2 списком переменной длиныпараметров?Значит, это может быть val1, ...., valN?И в конечном итоге с помощью метода обслуживания, таких как:

string GetVal( string first, string second, List<string> params );

Или что-то в этом роде?

1 Ответ

6 голосов
/ 10 января 2011

Просто получите простую строку и затем преобразуйте ее в массив (или список) в методе, используя метод split.

Ваш интерфейс должен выглядеть примерно так:

[OperationContract]
[WebGet(UriTemplate = "test/{first}/{second}/{val1}")]
string GetVal(string first, string second, string val1);

Ваша реализация:

public string GetVal(string first, string second, string paramArray)
    {
        string[] parameters = paramArray.Split(',');

        foreach (string parameter in parameters)
        {
            Console.WriteLine(parameter);
        }

        return "Hello";
    }

И назовите это в своем браузере следующим образом:

http://localhost:8731/MyServer/test/first/second/1,2,3

Подробный ответ на форуме MSDN

...