具有可变数量属性的ServiceStack请求DTO

问题描述:

我想创建一个端点作为查询服务的前端,并且我想支持可以通过查询字符串将任意数量的参数传递到服务中的场景参数。具有可变数量属性的ServiceStack请求DTO

这是哪门子的URL我想:

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

的DTO对象结构本身是相当简单的(属性如Dictionary<string, object>),但我卡上的路线应该是什么样子。这是可能通过RouteAttribute或我需要去另一个方向?

下面是解释Routing in ServiceStack的一个很好的答案。只有

PATHINFO是分开的路线,所有路线的请求的DTO的/服务也自动填充基于查询字符串/ FORMDATA等

所以如果你知道的查询字符串什么请求参数将会是你可以将它作为属性添加到R​​equest DTO中,并且它们将自动填充。

如果你不知道它们是什么,但你仍希望访问的查询字符串,你可以从你的服务中,base.Request财产得到它如:

class MyServices : Service 
{ 
    public object Get(MyQuery request) 
    { 
     foreach (var entry in base.Request.QueryString) { 
      ... 
     } 
    } 
} 
+0

第二部分是我失踪了。我一直在直接实施IService 。 –

+0

注意:如果您的服务还实现了'IRequiresRequestContext',您仍然可以从'IService '访问它。但我仍然建议使用提供的基类之一,除非你有理由不这样做。 – mythz