2

我想创建一个作为查询服务前端的端点,并且我想支持这样一种场景,即可以通过查询字符串参数将任意数量的参数传递到服务中。

这是我想要的那种 URL:

/queries/MyQuery?argument1=value&arg2=value

Dictionary<string, object>DTO对象结构本身相当简单(属性如 这是否可以通过 RouteAttribute 实现,还是我需要转向另一个方向?

4

1 回答 1

3

这是一个很好的答案,解释了 ServiceStack 中的路由

只有PathInfo是路由的一部分,所有路由/服务上的请求 DTO 也会根据 QueryString/FormData 等上的请求参数自动填充。

因此,如果您知道 QueryString 将是什么,您只需将其作为属性添加到请求 DTO 上,它们就会自动填充。

如果您不知道它们是什么,但您仍想访问 QueryString,您可以从base.RequestService 中的属性中获取它,例如:

 class MyServices : Service 
 {
     public object Get(MyQuery request) 
     {
        foreach (var entry in base.Request.QueryString) {
            ...
        }
     }
 }
于 2012-09-15T00:01:42.217 回答