2012-10-03 88 views
11

我在看2周前发布的新API。它好像是ServiceStack IReturn

ReqDTO : IReturn<List<ResDTO>> { //... } 

“IReturn”位似乎是可选的? RazorRockstars演示项目中的DTO没有它。

回答

17

这是ServiceStack's New API中的新增功能,它允许您记录请求DTO将返回的预期响应类型,例如,与

ReqDTO : IReturn<List<ResDTO>> { ... } 

它允许您调用使用任何C#服务客户端具有:

List<ResDTO> response = client.Get(new ReqDto()); 

如果你没有足够的IReturn标记您的客户端调用将有看起来像:

List<ResDTO> response = client.Get<List<ResDTO>>(new ReqDto()); 

您的服务的客户/消费者需要了解哪些内容。如果您在DTO上有标记,则响应类型已知。

IReturn<>标记还用于确定在ServiceStack的HTTP响应/metadata页中使用的响应DTO。

+0

使用ServiceStack 3.9.x,我只是想知道'IReturn'是否被强制执行?即,如果我的端点返回的数据与指定的类型不匹配,是否应该引发异常? – JaKXz

1

据我所知,这只是一个定义请求/响应DTO的简便方法。 你可以自由使用它,或不是。

1

如果您在便携式类库中定义您的DTO,您将无法使用IReturn。也许IReturn应该在ServiceStack的PCL中定义。只是一个想法。