5

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 );

或类似的规定?

4

1 回答 1

6

只需获取一个简单的字符串,然后使用 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论坛有详细解答

于 2011-01-10T14:45:01.913 回答