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 );
或类似的规定?
最佳答案
只需 GET 一个简单的字符串,然后在方法中使用 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
Take a look at the MSDN forum for a detailed answer
关于WCF/Rest/UriTemplate 变长查询字符串参数列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3832674/