Dav*_*Nay 8 c# .net-4.0 servicestack
我们正在构建我们的第一个小型ServiceStack实现,我们需要对位于客户端和服务器之间共享的单独程序集中的DTO进行一些澄清.
新API的WIKI页面为DTO推荐以下内容
在服务开发中,您的服务DTO提供您的技术无关服务层,您希望保持干净并尽可能"无依赖",以实现最大的可访问性和潜在的重用性.我们的建议是将您的服务DTO保存在一个单独的无部署组件中.
还有这个片段
*但是,假设您采用正常的方式复制DTO(在二进制形式的任何一个源中),因此您在客户端上有类似的东西:
[Route("/reqstars")]
public class AllReqstars : IReturn<List<Reqstar>> { }
The code on the client now just becomes:
var client = new JsonServiceClient(BaseUri);
List<Reqstar> response = client.Get(new AllReqstars());
Run Code Online (Sandbox Code Playgroud)
这是对/ reqstars路由的GET Web请求.当客户端上不存在自定义路由时,它会自动回退到使用ServiceStack的预定义路由.
我的问题是......由于DTO类的路由属性,"大部分免费"程序集是否还需要依赖ServiceStack?
该[Route]属性存在于ServiceStack.Interfaces项目中,因此您仍然只需要对依赖项和impl-free ServiceStack.Interfaces.dll的引用.这是设计,我们希望尽可能确保最小的依赖性,这就是为什么我们将尝试保留您在Interfaces项目中可能在DTO上使用的所有元数据属性.
想要将DTO保存在单独的程序集中的原因是为了减少客户端使用它所需的依赖性.这使得客户端的侵入性更小,更易于访问.此外,您的DTO代表您的服务合同,将它们分开,鼓励将它们与实施分离的良好实践,您希望继续自由地重新考虑.
| 归档时间: |
|
| 查看次数: |
1591 次 |
| 最近记录: |