如何删除服务堆栈中的响应约定?

时间:2013-05-13 00:22:32

标签: c# asp.net web-services soap servicestack

我正在尝试使用服务堆栈来维护服务。该服务需要符合soap 1.1标准。

现在我尝试使用的操作对象名为SendGetAccountResponse,我没有创建任何响应类,所以这将是一个异步服务。当我运行项目时,操作/消息不存在。

现在,如果我将DTO重命名为SendGetAccountR_esponse或SendGetAccountNotification,则会显示该操作,我可以调用该操作。

有些东西告诉我,某些约定会阻止操作,并在其结尾处显示Response并将其用作请求对象。

有谁知道我可以在何处/如何取消这些约定?

DTO命名约定

命名约定:{请求DTO名称} +响应

示例:请求DTO:DeleteCustomer - >响应DTO:DeleteCustomerResponse。 如果您按原样保留服务,则REST端点将不存在。所以你需要将它们全部挂在同一个URL上。

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

1 个答案:

答案 0 :(得分:2)

{RequestDtoName}Response约定不可删除。

它用于猜测匹配的请求DTO的响应应该是默认的。可以通过在Service Action签名中指定in来覆盖响应类型,例如:

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

或使用Request DTO上的IReturn<T>标记指定它,例如:

public class MyRequest : IReturn<MyCustomResult> {}