我正在尝试使用服务堆栈来维护服务。该服务需要符合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
答案 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> {}