2013-05-13 18 views
1

我想站出來使用服務堆棧的服務。該服務需要符合肥皂1.1標準。如何刪除服務堆棧中的*響應約定?

現在我試圖使用的操作對象被稱爲SendGetAccountResponse,並且我沒有創建任何響應類,所以這將是一個異步服務。當我運行該項目的操作/消息不存在。

現在,如果我去並將該DTO重命名爲SendGetAccountR_esponse或SendGetAccountNotification,那麼該操作就會出現,我可以調用該操作。

有些東西告訴我有某種約定會在響應結束時停止操作來顯示並用作請求對象。

有沒有人知道我在哪裏/如何將這些約定關閉?

DTO命名約定

命名約定:{請求DTO名稱} +響應

實施例:請求DTO:DeleteCustomer - >響應DTO:DeleteCustomerResponse。 如果您保留原樣的服務,REST端點將不存在。所以你需要把它們全部掛在同一個URL上。

https://github.com/ServiceStack/ServiceStack/wiki/SOAP-support

回答

2

{RequestDtoName}Response約定是不可拆卸的。

它用於猜測默認情況下匹配的請求DTO的響應應該是什麼。響應類型可以通過在服務操作的簽名指定的,如被覆蓋:

public class MyService 
{ 
    public MyCustomResult Get(MyRequest request} {} 
} 

或使用上的要求IReturn<T>標記指定它DTO,如:

public class MyRequest : IReturn<MyCustomResult> {} 
+0

所以也沒辦法禁用它,只需重寫響應對象? – 2013-05-13 03:57:49

+1

它是不可移動的,因爲它是在一些地方假定的慣例,例如,它會影響[錯誤處理](https://github.com/ServiceStack/ServiceStack/wiki/Error-Handling#error-response-types),並影響生成的元數據頁面。 – mythz 2013-05-13 04:00:32

+0

啊我明白了,現在有道理。謝謝你對此的回覆。也許你可以幫助我遇到不同的情況,http://stackoverflow.com/questions/16514575/service-stack-serialization-exception-for-soap-1-1 – 2013-05-13 04:02:46