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 );
或者沿着这些方向做什么?
答案 0 :(得分: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