簡體   English   中英

在WCF中的域層和服務層之間轉移用戶類型-建議的方法?

[英]Transferring user types between domain and service layers in WCF - suggested approaches?

這個問題很熟悉-在通過服務邊界整理用戶定義的/域類型時,我們是否只是簡單地使用[DataContract]屬性注釋了富域對象(從而用ServiceModel構造污染了域),還是我們實施了某種DTO流程(創建了額外的DTO流程)工作幾乎沒有好處)?

  • 人們如何解決這一沖突? 還有沒有其他弊端更少的方法?
  • 如果您使用的是DTO方法,那么如何實現將屬性值從域對象傳輸到DTO?

謝謝

您基本上回答了您的問題。 如果您想要非常清晰的設計,請使用DTO。 如果您不想增加額外的復雜性,則可以使用DataContract / DataMember屬性標記類,或者使用默認的序列化(僅.NET3.5及更高版本)來獲取所有公共屬性(帶有getter和setter)+您可以刪除一些屬性通過使用IgnoreDataMember屬性進行序列化。 要將域對象映射到DTO並將DTO映射到域對象,可以使用AutoMapper

如果使用DTO(我的建議),則可以使用匯編器模式將信息從DTO傳輸到實體,反之亦然。 您可以手動執行操作,也可以使用工具。 AutoMapper是一個很好的建議。

這也許很明顯,但是我想補充一下拉迪斯拉夫所說的話。 就像他提到的那樣,您可以使用POCO類型,但是您還可以靈活地使用IXmlSerializable,ISerializable,Serializable等。 這些其他序列化模板不具有與IgnoreDataMember一起使用的靈活性。

有關更多信息,請參見此博客文章 它還詳細說明了DataContractSerializer如何將同一類型的兩個沖突編程模型划分優先級。

暫無
暫無

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

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