2013-04-02 32 views
3

我正在嘗試將設置的查詢字符串中的值鏈接到服務堆棧對象中的屬性。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; 
    } 
} 

有誰知道如何做到這一點?我曾看過routing示例服務棧提供的示例,但我很難將其應用於我的情況。

謝謝。

回答

6

請重新閱讀Routing wiki page

注:查詢字符串,FORMDATA和HTTP請求正文是沒有拆開的 的路線(即僅/路/信息是),但他們都可以用於 除了每個Web服務調用以進一步填充請求 DTO。

您不能在路由中輸入任何查詢字符串。如果要更改字段映射的內容,需要使用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; } 
} 
+0

感謝您的快速響應。我最終做的是保持[Route(「/ smscallback」)],然後在實際查詢字符串中獲取發送的attribs得到映射,例如。 FN = {SenderNumber}&TN = {ContactNumber}。 –