Servicestack查询字符串

Jea*_*oon 3 routing servicestack

我试图将设置查询字符串中的值链接到服务堆栈对象中的属性.

以下代码片段说明了我要实现的目标.(我想将FN映射到SenderNumber,TN映射到ContactNumber等)

[Route("/smscallback?FN={SenderNumber}&TN={ContactNumber}&MS={Response}&TS={TS}")]
public class SmsCallback : IReturn<SmsCallbackResponse>
{
    public string SenderNumber
    {
        get;
        set;
    }
    public string ContactNumber
    {
        get;
        set;
    }
    public string Response
    {
        get;
        set;
    }
    public string TS
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?我查看了servicestack提供的路由示例,但我无法将其应用于我的情况.

谢谢.

myt*_*thz 6

请重新阅读Routing wiki页面:

注意:QueryString,FormData和HTTP Request Body不是Route的一部分(即只有/ path/info),但除了每个Web服务调用之外,它们都可以用于进一步填充Request DTO.

您不能在路由中放置任何queryString.如果要更改字段映射到的字段,则需要使用DataContract/DataMember属性修饰DTO,例如:

[DataContract]
public class SmsCallback : IReturn<SmsCallbackResponse>
{
    [DataMember(Name="fn")]
    public string SenderNumber { get; set; }

    [DataMember(Name="tn")]
    public string ContactNumber { get; set; }

    [DataMember(Name="ms")]
    public string Response { get; set; }

    [DataMember]
    public string TS { get; set; }
}
Run Code Online (Sandbox Code Playgroud)