WCF/Rest/UriTemplate 变长查询字符串参数列表?

标签 wcf rest variables parameters uritemplate

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/

相关文章:

c# - 标记为 OneWay 的 WCF 操作是否存在执行超时?

c# - WCF休息: ReadAsDataContract using classes "WITHOUT" decoration attributes DataContract and DataMember

c# - 如何使用存储库模式将 EF 对象转换为 WCF 模型

javascript - 在 JavaScript 上验证 GitHub API

java - 未能关闭 Spring Boot 安全配置

javascript - 如何将图片高度和宽度传递给 html 灯箱

javascript - 将字符串附加到变量名称

wcf - 保护 REST API/Web 服务的最佳实践

qt - 在其他其他QML文件的QML中声明全局属性

java - 如何保护 Spring MVC REST 服务 json 响应