簡體   English   中英

ServiceStack DTO組裝

[英]ServiceStack DTO Assembly

我們正在構建我們的第一個小型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());

這是對/ reqstars路由的GET Web請求。 當客戶端上不存在自定義路由時,它會自動回退到使用ServiceStack的預定義路由。

我的問題是......由於DTO類的路由屬性,“大部分免費”程序集是否還需要依賴ServiceStack?

[Route]屬性存在於ServiceStack.Interfaces項目中,因此您仍然只需要對依賴項和impl-free ServiceStack.Interfaces.dll的引用。 這是設計,我們希望盡可能確保最小的依賴性,這就是為什么我們將嘗試保留您在Interfaces項目中可能在DTO上使用的所有元數據屬性。

想要將DTO保存在單獨的程序集中的原因是為了減少客戶端使用它所需的依賴性。 這使得客戶端的侵入性更小,更易於訪問。 此外,您的DTO代表您的服務合同,將它們分開,鼓勵將它們與實施分離的良好實踐,您希望繼續自由地重新考慮。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM